C语言运算符和常用输入输出函数

📅 2026/7/26 6:35:53 👁️ 阅读次数 📝 编程学习
C语言运算符和常用输入输出函数

5.运算符

(1)算数运算符

+ - * / %(求余)

双目运算符:2个操作数

1)%的操作数必须是整形数据或者和整形数据兼容的数据类型;

2)%左操作数是正数,结果是正数,左操作数是负数,结果是负数。

++ --

单目运算符:1个操作数

1)++num(前置++):先加后用;

2)num++(后置++):先用后加。

3)--num(前置--):先减后用;

4)num--(后置--):先用后减。

(2)赋值运算符

= += -= *= /= %=

左值:放在赋值运算符左边的量,左值只能是变量。

右值:放在赋值运算符右边的量,右值可以是常量、变量、表达式。

普通用法:赋值运算符左右两边的数据类型要一致。

当赋值运算符左右两边的数据类型不一时:

1)当浮点型数据赋值给整形数据,只保留整数部分,精度损失;

2)若赋值运算符左右两边是空间一致的数据类型,直接拷贝内存;

3)补符号位:小数据放入大空间,高位补符号位(正数补0,负数补1);

4)高位截断:大数据放入小空间,保留低位,高位截断。

num += 10 <=> num = num + 10;

cnt += 10 + 5 <=> cnt += (10 + 5);

除了逗号运算符,赋值运算符比其他运算符优先级都低。

(3)三目运算符

三个操作数

语法:表达式 ?表达式1 :表达式2

如果表达式的结果为真(成立),则三目运算符的最终结果为表达式1的结果。

如果表达式的结果为假(不成立),则三目运算符的最终结果为表达式2的结果。

(4)逗号运算符和sizeof运算符

num = 2+3, 4*5, 6-4; //5

num = (2+3, 4*5, 6-4); //2

注意:

1)逗号运算符优先级最低;

2)由逗号运算符组成的多个表达式的结果是最后一个式子的结果;

sizeof(数据类型/变量/常量/表达式)

功能:获取数据类型/常量/变量/表达式的结果在计算机内存中占的字节数。

返回结果:unsigned long --> %ld

(5)运算符的优先级和结合方向

优先级:

1):括号>单目运算符>双目运算符>三目运算符>赋值运算符>逗号运算符;

2):算数运算符>关系运算符>逻辑运算符。

结合方向:优先级相等时,看结合方向

单目运算符,三目运算符,赋值运算符自右向左运算。

二、常用输入输出函数

函数:封装的一个功能模块

输入输出:标准C库提供的输入输出函数。

1.putchar/getchar

int putchar(int c);

功能:向终端输出一个字符。

参数:要输出的字符的ASCII值。

返回值:返回输出字符的ASCII值。

int getchar(void);

功能:从终端读取一个字符。

参数:空。

返回值:返回终端读到的字符的ASCII值。

2.printf/scanf

printf:

功能:向终端输出格式化后的字符串。

(1)输出非格式控制符的数据

(2)输出带有格式控制符的数据

%d 以十进制有符号整形数据输出

%u 以十进制无符号整形数据输出

%ld 以十进制有符号长整形数据输出

%lu 以十进制无符号长整形数据输出

%o %O 以八进制整形数据输出(%#o %#O: 0144)

%x %X 以十六进制整形数据输出(%#x %#X: 0x64)

%f 以单精度浮点型数据输出

%lf 以双精度浮点型数据输出

%c 以字符型数据输出

%s 以字符串形式输出

%e %E 以科学计数法的形式输出(3.14e2)

(3)输出带有多个格式控制符的数据

(4)域宽输出设置

%nd 以n位域宽输出

%-nd 以n位域宽输出并左对齐

%0nd 以n位域宽输出,用0补齐

%.nf 以保留n位小数输出

%m.nf 以保留n位小数,m位域宽输出

scanf:

功能:从终端读取一个字符串并将其转换成目标格式。

注意:

1)scanf在使用时,“”里面是什么内容,终端必须输入同样内容;

2)sacnf的“”中除了格式控制符,尽量少写其他数据;

3)%s 以字符串形式输入时,要用字符数组接收,遇到空格会停止读取。

(1)scanf读取控制符数据

(2)scanf读取多个控制符数据

1)输入数字型数据时,中间用空格,回车或Tab隔开;

2)输入字符型数据时,会读取空格,回车和Tab;

3)用其它类型的数据隔开时,会停止读取。

4)在%c前面输入空格可以吸收输入的空格,回车和Tab。

3.puts/gets

puts:

功能:将字符串输出到终端,自动增加‘\n’(自动换行)。

gets:

功能:从终端读取字符串,并存入字符型数组中。

注意:gets是一个危险的函数,可能会造成数组越界。