想不通,就是想不通,请高手帮我分析一下,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:57:19
main()
{
int a=-1,b=4,k;
k=(++a<0)&&!(b--<=0);
printf("%d,%d,%d\n",k,a,b);
}
输出的结果是0,0,4为什么不是0,0,3呢?b参加完运算之后,不是应该b=b-1吗?急!等,回答的好有追加分!

前面的++a<0是不成立的,哪么已经确定了k=0;那么后面的b--就不会去执行了啊。所以结果还是0 0 4

&& 你要知道这个符号的意思
那是前面成立它才会执行后面的 所以前面大哥说的没有错