执行以下程序段后,a、b、c和k的值分别为() int a=1,b=2,c=3,k; k=a+++b+++c++

答案好像是1 2 3 6
我算不是这个结果呢
k=(a++)+(b++)+(c++)
k=1+2+3=6
但是 a++即a=a+1 结果a不应该是取a++后的值么 不应该是2 b=2 c=4 么??

a++、b++、c++都是在运算之后,自增1,分别变成2、3、4 

我在Visual C++中验证了一下,如图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-22
使用你的程序说明c语言中自增/减运算符的使用如下:
int a=1,b=2,c=3,k;
k=a+++b+++c++;
相当于k=(a++)+(b++)+(c++),相当于k=a+b+c; a++; b++; c++;先使用原来的值运算,然后自增
若是k=++a+++b+++c;那么相当于a=a+1;b=b+1;c=c+1;k=a+b+c;变量先自增,然后运算。这是a++与++a的区别,与编译器有关,感兴趣的话可以继续深入学习。加油!本回答被提问者采纳
第2个回答  2010-12-11
a++是先运算在赋值,及k=1+2+3运算后再将a++,使得a=2,++a为先赋值再运算
你可以k=(a++)+(b++)+(c++)后printf下a,这时a=2