首页 > 编程知识 正文

c语言逗号运算符取前面还是后面,c语言逗号运算符和逗号表达式

时间:2023-05-04 18:45:16 阅读:251083 作者:3197

菜鸡自学
C语言中,逗号运算符的优先级最低。

int a; int b; a = 3; b=++a,4-2,a+5; //优先级 printf("b1= %dn",b); // b=++a=4; a = 3; //a值重新赋回来 b=(++a,4-2,a+5); //结合性 printf("b2= %dn",b); // b=((++a)+5)=9; return 0;

第一个b,后面赋值表达式中,自加“++”的优先级高于,逗号的优先级,所以给b赋值为++a 为4 。

第二个b,后面有带括号的逗号运算符,所以要自左至右的计算各个表达式的值,但是赋值给b的值,是整个逗号表达式的值,即为最后一个表达式的值a+5,为b=((++a)+5)=9。

不妨考虑一下a在运算后取值是多少?

int a; int b; a = 3; b=++a,4-2,a+5,a*4,a++; //优先级 printf("b1= %d.a= %dn",b,a); // b=++a=4,a=++a再a++等于5; a = 3; //a值重新赋回来 b=(++a,4-2,a*2,a+5,a-1); //结合性 printf("b2= %d.a= %dn",b,a); // b=((++a)-1)=3,a=++a等于4;

考虑优先级的同时,还有区别a++和++a两种情况

a = 3; b=a++,4-2,a+5,a*4,a++; //优先级 printf("b1= %d.a= %dn",b,a); //b=a++既a自增前的数值3 a = 3; b=++a,4-2,a+5,a*4,a++; //优先级 printf("b1= %d.a= %dn",b,a); // b=++a,既a自增后的数值4

运算符优先级

见缝插针游戏的实现途径

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。