0enSday 发表于 2021-3-20 23:54:26

c语言自增问题

小白求助,代码附上


int x = 6;

printf("%d\n", x+ = x++, ++x);
输出:15



请问这个具体怎么处理的,怎么进行运算的,请教一下,实在是没有搞懂。

茄子爱我 发表于 2021-3-21 09:59:38

我觉得吧,++的运算符等级比+=运算符等级高,所以x+=x++即为x=x+(x++),x=6+7=13,至于后面++x,我觉得应该不可以这么写吧,在线等一个大佬{:5_109:}

巴巴鲁 发表于 2021-3-21 10:46:39

逗号运算符、自增运算符
确实如楼上所说,+= 的优先级比++小
x = 6
先进行x++,x此时为7,有因为逗号运算符,结果为后面的,所以相当于x = x + x++;
x = 7 + 8;
最后友情提示,以后代码不要这么写!!!

0enSday 发表于 2021-3-24 17:52:12

巴巴鲁 发表于 2021-3-21 10:46
逗号运算符、自增运算符
确实如楼上所说,+= 的优先级比++小
x = 6


多谢回答
我想问一下
x = x + x++ 时
x = 7
但是x++不应该是先用7相加然后再x = x + 1 吗?
也就是① x = 7 + 7
          ② x = x + 1
页: [1]
查看完整版本: c语言自增问题