C语言常量变量以及常用输入输出函数

本文详细介绍了C语言中的常量和变量概念、类型转换规则、基本运算符使用、输入输出函数如getchar和putchar以及sizeof运算符。通过实例展示了如何声明、初始化变量,以及进行类型转换和控制台输入输出操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

一.常量和变量

1.常量和变量:
1.字符串常量:
“ab”
“hello world”

    字符串末尾都有一个用来标识字符串结尾的 \0字符
    
    'a'和"a"区别:
        'a':字符常量,只有一个字符a
        "a":字符串常量,有2个字符'a' + '\0'
    
    "ab\0"              4
    "ab\\\123ab"        7
#include <stdio.h>

int main(void)
{
	"ab";
	"hello world";
	printf("%ld\n", sizeof("hello world"));

	return 0;
}

 2.标识常量
    #define N   5

    宏只是代码的替换,中间不进行任何数据计算的操作
    宏名一般都是大写,用来和变量区分
#include <stdio.h>

#define		N		50
#define		M		N + N

#define		LARGEN_FACTOR	1.5

int main(void)
{
	int Num;
	
	Num = M * M;
	printf("Num = %d\n", Num);
	
	Num = Num * LARGEN_FACTOR;

	return 0;
}
 3.变量:
    数据类型 变量名;
    int Num1, Num2, Num3;
#include <stdio.h>

int main(void)
{
	int Num1 = 100, Num2 = 200;

	printf("Num1 = %d\n", Num1);
	printf("Num2 = %d\n", Num2);

	return 0;
}

    初始化:
        定义变量的时候对变量赋初值

    赋值:
        定义变量后,对变量的赋值

    初始化 != 赋值

    注意:
        1.未经初始化的变量值为随机值
        2.定义变量时最好对变量初始化
#include <stdio.h>

int main(void)
{
	unsigned int a = 5;

	if (a - 10 > 0)
	{
		printf("Yes!\n");
	}
	else 
	{
		printf("No!\n");
	}

	return 0;
}

二.类型转换

1.显示类型转换(强制类型转换)
只会转换一次
(int)3.1415;
(int)3.78;
(double)100;
int Num1;
(double)Num1;

#include <stdio.h>

int main(void)
{
	int Num = 2;
	int Ret = 0;

	50 + 3;
	10 - 5;
	2 - 5;
	5.3 - 2;
	10 / Num;
	Ret = Num + Num;
	
	printf("Ret = %d\n", Ret);

	return 0;
}

2.隐式类型转换
    表达式:一个多个变量和常量组成的式子
        表达式一定有值
        表达式一定有类型

    低精度转换成高精度

        浮点型精度 > 整形精度
        同种类型所占内存空间越大精度范围越高
        无符号精度 > 有符号精度

        float类型进行数据运算和数据处理时会转换为double类型
        short、char类型进行数据运算和数据处理时会转换为int类型

        char + char == int 
        char + short == int 
        float + float == double 
        float + double == double 
        float + int == double 

        3.14 - 5

三.运算符

1.算数运算符:
+
-
*
/ : 不能除以0
% : 不能对浮点数操作
++ 自增运算符
– 自减运算符

    练习:
    定义两个变量可以是整形或者浮点数类型,对这两个变量赋值,
    并计算这两个数四则运算的结果并打印在终端
#include <stdio.h>

int main(void)
{
	double Num1 = 0;
	double Num2 = 0;
	double Ret = 0;

	Num1 = 83;
	Num2 = 32;

	Ret = Num1 + Num2;
	printf("ADD:%f\n", Ret);

	Ret = Num1 - Num2;
	printf("SUB:%f\n", Ret);
	
	Ret = Num1 * Num2;
	printf("MUL:%f\n", Ret);
	
	Ret = Num1 / Num2;
	printf("DIV:%f\n", Ret);

#if 0
	int Num1 = 0;
	int Num2 = 0;
	int Ret = 0;

	Num1 = 83;
	Num2 = 32;

	Ret = Num1 + Num2;
	printf("ADD:%d\n", Ret);

	Ret = Num1 - Num2;
	printf("SUB:%d\n", Ret);
	
	Ret = Num1 * Num2;
	printf("MUL:%d\n", Ret);
	
	Ret = Num1 / Num2;
	printf("DIV:%d\n", Ret);
#endif

	return 0;
}
    i++;    先用再加
    ++i;    先加再用
    i--;
    --i;
#include <stdio.h>

int main(void)
{
	int i = 1;
	int n = 0;

//	n = ++i - 2;
	n = ++i + i++;

	printf("n = %d\n", n);
	printf("i = %d\n", i);

	return 0;
}
2.赋值运算符:
    =
    +=
    -=
    *=
    /=
    %=
#include <stdio.h>

int main(void)
{
	short a = 0;
	int b = 123456789;

	a = b;
	printf("%d\n", a);

#if 0
	short a = -1;
	int b = 0;

	b = a;

	printf("b = %d\n", b);
#endif

#if 0
	unsigned int Num = 0;

	Num = -5;

	printf("Num = %u\n", Num);
#endif

#if 0
	double Num = 0;

	Num = 3;

	printf("Num = %lf\n", Num);
#endif

#if 0
	int Num = 0;

	Num = 3.14;

	printf("Num = %d\n", Num);
#endif

	return 0;
}
#include <stdio.h>

int main(void)
{
	char ch = 130;

	printf("ch = %d\n", ch);

#if 0
	int a = 10;

	a *= 2 + 3;
	printf("a = %d\n", a);
#endif

	return 0;
}
    左值:允许放在赋值运算符左边的值
          变量  
          常量、表达式均不能作为左值

    右值:允许放在赋值运算符右边的值
          常量、变量、常量变量组成的表达式
    
    左值为浮点数类型,右值为整形,会将值扩展精度
    左值为整数类型,右值为浮点数类型,会舍弃精度

    左右两边均为整形:将右值直接拷贝到左值空间中
    
    小数据放入大空间:数据扩展,有符号数高位补符号位,无符号高位补0 
    大数据放入小空间:直接截取数据低位放入小空间

char ch = 300;
printf("ch = %d\n", ch);    //44

char ch = 130;
printf("ch = %d\n", ch);    //-126

3.三目运算符(特殊运算符)
  表达式 ? 表达式1 : 表达式2 
#include <stdio.h>

int main(void)
{
	int Num1 = 100;
	int Num2 = 200;
	int MaxNum = 0;

	MaxNum = Num1 > Num2 ? Num1 : Num2;

	printf("MaxNum = %d\n", MaxNum);

	return 0;
}
  练习:定义三个变量,并对变量赋值,
        通过三目运算符获得3个数中的最大值并打印
#include <stdio.h>

int main(void)
{
	int Num1 = 10;
	int Num2 = 20;
	int Num3 = 30;
	int Tmp = 0;
	int MaxNum = 0;

	Tmp = Num1 > Num2 ? Num1 : Num2;
	MaxNum = Tmp > Num3 ? Tmp : Num3;
	
	printf("MaxNum = %d\n", MaxNum);

	return 0;
}
  结合方向:自右至左
  x > y ? x : (y > z ? y : z)

4.逗号运算符
    从左到右依次执行表达式,并将最后一个逗号表达式的结果作为整体逗号表达式的结果
#include <stdio.h>

int main(void)
{
	int a = 0;
	int b = 1;	
	int c = 0;

	c = (a+b, b+c, a++, b++, a+2);

	printf("a = %d\n", a);
	printf("b = %d\n", b);
	printf("c = %d\n", c);

	return 0;
}
5.sizeof运算符
    sizeof (数据类型/变量名) 获得数据类型/变量在内存中所占的字节数

四.常用输入输出函数

1.C语言中常用的输入输出函数:
1.getchar putchar
2.scanf printf
3.gets puts

1.putchar
功能:在终端打印一个字符

示例: 
    putchar('a');
    
    char ch = 'A';
    putchar(ch);

    putchar(ch + 32);
#include <stdio.h>

int main(void)
{
	char ch = 0;
	int Num = 97;

	ch = 'A';

	putchar('a');
	putchar(ch);
	putchar(ch + 32);
	putchar(97);
	putchar(Num);
	putchar('\n');

	return 0;
}
注意:
    1.putchar只能打印一个字符,想打印多个字符需要多次调用putchar 
    2.putchar只能打印字符 

练习:
    利用putchar在屏幕上打印 Hello World!
#include <stdio.h>

int main(void)
{
	putchar('H');
	putchar('e');
	putchar('l');
	putchar('l');
	putchar('o');
	putchar(' ');
	putchar('W');
	putchar('o');
	putchar('r');
	putchar('l');
	putchar('d');
	putchar('!');
	putchar('\n');
	putchar(27);
	putchar('\0');

	return 0;
}

2.getchar
功能: 从终端接收一个字符

示例:
#include <stdio.h>

int main(void)
{
	char ch = 0;

	ch = getchar();
	
	printf("ch = %c\n", ch);

	return 0;
}
注意:
    1.getchar会将程序阻塞,直到用户输入数据,程序才能继续向下执行 
    2.getchar只能接收 一个字符,想要接收多个字符需要多次调用
    3.getchar只能接收字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值