一、算术运算符与算术表达式
(一)算术运算符
1、基本的算术运算符:
+ | 加法运算符或正值运算符 |
- | 减法运算符或负值运算符 |
* | 乘法运算符 |
/ | 除法运算符,整数与整数相除结果为整数,且多数C编译系统采取“向0取整” |
% | 求余运算符,两个数进行除法运算后,将余数作为结果 |
向0取整:如商为1.7则结果为1,商为-1.7则结果为-1;即向0的方向取出现的第一个整数。
2、自增、自减运算符
1)用法:
①变量名++、变量名—
②++变量名、--变量名
2)两种用法相同的地方在于描述的都是“变量=变量+1”的功能,而区别在于:
①运算符在变量的右边,则先使用变量当前值,下一次再执行+1的操作;
②运算符在变量的左边,则直接先对变量进行+1的操作,然后再使用变量。
举例说明:
#include <stdio.h> int main() { int i=1; int j=1; printf("i=%d\n",i++); printf("%d\n",i++); printf("j=%d",++j); return 0; } | 运行结果: i=1 2 j=2 分析: i++,是先使用i的值,再使用一次则加1,因此,第一次输出和第二次输出虽然代码一样,但结果不一样 j++,是先对j进行加1的操作,然后再使用j的值,因此,结果是2 |
3)注意事项:
①自加、自减运算符只能用于变量不能用于常量或表达式;
②自加、自减运算符的结合方向为“自右向左”。
例如:i=-3,那么-i++执行两次后的结果是什么呢?
由于-和++这两种运算符的优先级相同,且结合方向都为自右向左,因此,先执行++然后在执行-,即类似于-(i++),那么,第一次执行的结果为-(3)=--3,第二次执行的结果为-(3+1)=-4。
3、算术表达式
①用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子,称为C算术表达式;
②运算对象包括常量、变量、函数等;
③结合方向:自左向右;
④按算术运算符的优先级别执行运算次序;
⑤不同类型的运算对象进行运算前,先进行类型转换(原则:谁表示的范围大就按谁的类型来进行转换),然后进行运算;
⑥强制类型转换,形如:(类型名)(表达式),这里表达式如果只是单独的变量时,括号可省略不写。
二、赋值运算符和赋值表达式
1、赋值运算符
1)基本的赋值运算符:=
形式:变量名 = 表达式
作用:将一个数据赋值给一个变量,数据类型与变量类型相同时直接进行赋值,不相同时会进行类型转换后再进行赋值。
2)复合的赋值运算符:(二元运算符)=
所谓二元运算符,是指能够使两个表达式进行运算的运算符,如a+b,(a+b+c)*(e-6/7)等等
种类:+= 、 -= 、 *= 、 /= 、 %= 、 <<= 、 >>= 、&= 、^= 、 |=
2、赋值表达式
形式:变量 赋值运算符 表达式
如:a = 3、a=(3+a)*b等
结合方向:自右向左
三、逗号运算符和逗号表达式
1、逗号运算符:,
作用:将多个表达式连接起来
2、逗号表达式:
①形如:表达式1,表达式2,表达式3,……表达式n
②逗号表达式的结果:整个逗号表达式的值是表达式n的值,在多数情况下,使用逗号表达式的目的是分别得到各个表达式的值,而并非一定需要得到和使用整个表达式的值。
③逗号表达式常用于for语句中。
举例说明:
#include <stdio.h> int main() { for(int i=0,j=0 ; i<10,j<10 ; i++,j++) { printf("i=%d,j=%d\n",i,j); } return 0; } |
3、逗号运算符是所有运算符中级别最低的,在使用时需要注意的是并非所有的逗号都是逗号运算符,更多的是作为间隔来使用,例如:printf(“%d,%d”,a,b);这里逗号是作为间隔用于a、b两个变量之间。
扫描下方二维码,获取更多C语言资料↓↓↓↓