【发布时间】:2013-06-27 02:14:26
【问题描述】:
当我输入如下代码时:
int a=10,b,c,d,e;
c= a++;
d = ++a;
e = ++a;
printf("value of c=%d, d =%d, e=%d",c,d,e);
它给了我一个类似c =10、d= 12、e=13的输出
当我们添加这些值时,即10+12+13变成35,
但是当我像这样编码时:
b = a++ + ++a + ++a;
printf("value of b=%d" ,b);
它给了我输出36。
有人能描述一下这段代码背后的过程以及为什么代码的输出不同吗? 谢谢!
【问题讨论】:
-
第二个 sn-p 不能保证总是得到 36。