逗号运算符作用:
1、作为分隔符发挥作用:
定义变量以分隔变量: int a,b
或用于在输出时分隔输出表列printf(%d%d )、a和b
2 )逗号表达式的顺序运算符
语法:表达式1,表达式2,表达式n
表达式值:表达式n的值
优先级:最低
运算顺序:左-右
总结例题
错题1
if(ab,ac ) max=a;
else max=0;
t=(a=a3,a/b,b 1,c );
printf (输出max和t的值
max=3,t=2
分析: if语句中为逗号表达式,因此先计算ab,结果为0。 如果注意这里的逗号是运算符而不是分隔符,然后计算交流,则结果为1。 进入条件,将a的值3代入max; 然后,要计算t的值,必须注意这里的逗号是运算符而不是分隔符a 3。 a=6,然后a/b得到1,然后b的值是4,c先自增再赋值,结果是2。
错题2
计算以下逗号表达式的值:
(a=2*4,a*5),a-3
此逗号表达式首先计算括号中的值。 从左向右,a代入8。 然后,a*5是包含该括号的逗号表达式的值,计算括号外的a-3。 因为a-3是5,所以这个公式的结果是5。
请注意公式和赋值公式的区别。
错题3
这两个主题都是自增运算符、自减运算符和逗号运算符组合的主题,测试中出现了两个错误。
以I为例,自增运算符的具体含义如下:
1 .先进行I和其他运算符的运算
2 .重新执行i=i 1
答案: d
分析:其中包含顺序运算符。 首先计算a=3,然后b=a--,a的值首先分配给b。 表达式的值为b,即x=b,然后a减去2。 因此,x、a和b的值分别为3、2和3
答案: c
分析:由于首先执行赋值x=0,然后执行x 10,然后x、x执行其他操作,即逗号运算符,然后执行自递增,因此结果为x=0.0