zhuyudi 发表于 2012-5-31 15:33:47

关于自增自减的一个问题

本帖最后由 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了吗!咋个还要来计算一次啊

zhuyudi 发表于 2012-5-31 15:57:08

知己解决了

Damn_it 发表于 2016-11-24 15:19:52

c=(a++)+(a++)+(a++);在VC6.0中是这样的
c=15
d=(++b)+(++b)+(++b);
d=24
不同的编译器有不同的结果{:10_254:}
页: [1]
查看完整版本: 关于自增自减的一个问题