#include<stdio.h> void main() { int a=2,b=1,c=2; if(a<b) if(b<0) c=0; else c++; printf("%d尀n",c);

这个程序如何执行的,结果是多少
2024-11-15 12:20:04
推荐回答(4个)
回答(1):

你要搞清楚 | 和 || 的区别,||:逻辑或,前后条件只要有一个满足表达式为真,a++||++b,a++先判断,后执行+1,也就是a=1为真,后面++b就不用管,不执行,就是短路性质。
短路现象常见的有,短路与(&&)和短路或(||),若a && b ,如果a 的值为假,则整个表达式的值就为假,它是从左向右计算的。所以执行该表达式后,b 的值还是它的初始值,即不进行运算。若a || b ,如果a 的值为真,整个表达式的值就为真,执行顺序同上。b 的真假由最初的真假来判断,也就是说,当a 为真时,b 则不进行运算了。

回答很辛苦,希望采纳。

回答(2):

if语句里面的条件判断都使用 短路法
a++ || ++b 并不是 先判断 a++ ,再执行 ++b
因为 a++后的结果是 1,已经为真,就不再执行 ++b了。
所以,结果为 2 , 1, 2

回答(3):

你开始时定义了b=0;,然后if(--a) 自减在前面,所以先减了,再用a ,这个时候a为0,if语句不执行 b无法自加了,所以还是为0,不懂可以追问

回答(4):

#include
void main()
{
int a=2,b=1,c=2;
if(a
if(b<0) c=0;
else c++;

printf("%d\n",c);//变量c保持不变