关于自增自减的一个问题
本帖最后由 zhuyudi 于 2012-5-31 15:46 编辑[*]#include <stdio.h>
[*]void main() /*主函数*/
[*]{
[*] int a,b,c,d;
[*] a=5;
[*] b=5;
[*] c=(a++)+(a++)+(a++);
[*] d=(++b)+(++b)+(++b);
[*] printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);
[*]}
[*]中的结果 a=8 b=22c=15
[*]其中的c=(a++)+(a++)+(a++)不是参与运算后再自增1吗那不是应该是这样 c=(5++)+(5++)+(5++)
[*]结果应该在15的的基础上再自增 1 还是再自增的1已经与c的赋值已经无关了呢??? 所以 c=15.
[*]printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d)中的a不是在前面定义为5了吗!咋个还要来计算一次啊
知己解决了 c=(a++)+(a++)+(a++);在VC6.0中是这样的
c=15
d=(++b)+(++b)+(++b);
d=24
不同的编译器有不同的结果{:10_254:}
页:
[1]