求助,关于&&运算符的运算特性问题
  • 板块灌水区
  • 楼主RainSpark
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/9/10 09:08
  • 上次更新2023/10/27 12:09:41
查看原帖
求助,关于&&运算符的运算特性问题
352603
RainSpark楼主2022/9/10 09:08

下面这段代码:

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 语句里没有执行,写在变量里再调用就执行了?

2022/9/10 09:08
加载中...