C语言执行程序段int a=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf("%d,%d,%d尀n",k,a,b)输出什么,求讲解过程

2024-11-19 02:25:17
推荐回答(2个)
回答(1):

输出结果为0,0,4
int a=-1,b=4,k;定义三个变量,并赋值
k=(++a<0)&&!(b--<=0);
++a,表示a先+1再参加运算,则++a<0是错误的,计算之后a=0
如果有两个& 即&&,而且前部分为错,则后半部分不执行,
那么k=0,且b不发生变化即b=4

回答(2):

int a=-1,b=4,k;   //声明变量并赋值
k=(++a<0)&&!(b--<=0);   
//a先自加1在判断是否小于0,b先判断是否小于等于0再取反再自减1,
//然后两次判断结果取与运算,左边为真,右边也为真,取与为真,k=1
printf("%d,%d,%d\n",k,a,b) //k=1, a=0, b=3