求助原因,口算和机算结果不一样
#include <stdio.h>int main(){
int i=5;
int j=5;
int p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
printf("%d,%d",p,q);
return 0;
}
这里的q口算是21,为什么机器算出来是22呢?求大佬解答 本帖最后由 hrp 于 2019-12-21 23:38 编辑
// 算第一个括号时:
//6 6 6
q = j + (++j) + (++j);
// 算第二个括号时:
//7 7 7
q = j + j + (++j);
// 前两项相加时:
// 7
q = 14 + (++j);
// 算第三个括号时:
// 8
q = 14 + j;
// 结果:
q = 14 + 8;
页:
[1]