主要特点:
1、逗号表达式是C语言优先级最低的运算符。
2、逗号表达式是左结合性(即按从左到右顺序运算)的运算符。
计算技巧:
①从左往右逐个计算表达式,②整个表达式的值为最后一个表达式的值。
常见表达式
//例一
#include<stdio.h>
void main(){
int x, y, z;
o = x = 3, y = 4, z = 5;
printf("x=%d,y=%d,z=%d,o=%d\n",x,y,z,o);
运行结果:x=3,y=4,z=5,o=3
//例二
#include<stdio.h>
void main(){
int x, y, z, o;
o = ( x = 3, y = 4, z = 5 );
printf("x=%d,y=%d,z=%d,o=%d\n",x,y,z,o);
}
运行结果:x=3,y=4,z=5,o=5
我们可以先把上面两个表达式简化成👇
例一:o = 表达式1,表达式2,表达式3;
因为逗号表达式是优先级最低的表达式,赋值表达式的优先级高,所以会把表达式1的值直接赋值给o
例二:o = (表达式1,表达式2,表达式3);
括号里中的先执行,逗号表达式是左结合性,所以会从左往右依次执行,最后再把表达式3的值赋值给o
小结论:
结合以上两个例子的运行结果我们可以得出一个结论:
当没有括号时,第一个表达式为整个表达式的值。
而有括号时,依次执行后,最后一个表达式为整个表达式的值。
而且所有的表达式都依次执行了。