有以下程序
#include <stdio.h>
main()
{ int x, y, z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是
A) 2,3,1
B) 2,3,2
C) 2,3,3
D) 2,2,1
通过实际验证了的结果,答案是 A
这里我分布说明,程序的过程:
第一步计算:x = y = 1;
第二步计算:z = x ; 结果 z = 1;
第三步计算:x++ ; 结果 x = 2;
第四步计算:y++; 前面赋值 y=1; y++ 后 y = 2;
第五步计算:++y; 前面 y++ 后,y =2 这里 ++y; 结果 y = 3;
最后结果:x =2 ; y = 3 ; z = 1
只要明白了,运算的优先权,就能很好的理解并计算