1、逗号表达式(依次计算,结果为最后一个式子值)
是以逗开隔开的一系列表达式,其形式为:expr1, expr2, expr3, ..., exprN
其运算规则是,从左到右依次计算每个子式的值,并把最后一个子式的值作为整个表达式的值。
注:前几个表达式的值可能会影响到最后表达式中的变量,所以一定是依次计算
2、*=
b *= a + 3;相当于b = b * (a + 3 )
3、前置和后置:++/--操作
加在后先用,加在前先加再用
a++与++a
#include <stdio.h>
int main()
{
int a, b, c;
a = 5; //此时 a的值是5
b = a++; //这一步,a一开始为5, 先返回a的值给b,b就为5了,然后 a执行++,a就为6了。
printf("a = %d, b = %d \n", a, b); //输出 a = 6, b = 5
c = ++a; //这一步, a先执行++,a的值就为7了,然后再将a的值返回给c,c也等于7了。
printf ("a = %d, c = %d \n", a, c); //输出 a = 7, c = 7
return 0;
}
特殊:
a++=b++
会先执行a=b,再执行a++和b++
4、||(前面是真后面不会执行)
设x、y、t均为int型变量,则执行语句:t=3; x=y=2; t=x++||++y; 后,变量t和y的值分别为
t=1 y=3
x++||++y执行后的结果是真,即1,然后赋值给t。因为是或运算,所以在判断x++时真后,后面的++y就不再执行了,所以y值没有变还是2
优先级
记住两个优先级即可:
①* /比+ -优先级高
②!高于&&高于||
其余情况多加括号,哪怕自己懂,别人看了也不懂