问题描述:
void main(){
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
谁能详细讲解一下了.我算的不对啊,我算的是,p=18,,,,
问题解答:
这样的代码不看也罢,和编译器还有很大的关系.
vc6.0运行DEBUG的结果是:p=15,q=22,i=8,j=8;
Release模式下运行的结果却是:p=15,q=24,i=8,j=8;
C++ Builder运行的却一定不是这个结果.我没有试过,自己可以试一试.
象这样不确定的代码一定不要写.
6+7+8
p=5+6+7=18
q=6+7+8=19
i=8
j=8