下面这段代码:
int i=7,j=8,k=9;
printf("%d ",i-7 && j++>k);
printf("%d %d %d\n",i,j,k);
代码上看起来 j 先用后增,按理说输出 0 7 9 9,可以跑出来的程序 j 却没有自增,输出 0 7 8 9。
我又定义了一个 bool 类型的变量 t,存放 j++>k 的结果,这个代码输出 0 7 9 9,j++被执行了。
i=7,j=8,k=9;
bool t=j++>k;
printf("%d\n",i-7 && t);
printf("%d %d %d\n",i,j,k);
所以,为什么上面这段代码把 j++>k 写在 if 语句里没有执行,写在变量里再调用就执行了?