谁帮我解读一个简单的 C程序 ,XEIXIE

来源:百度知道 编辑:UC知道 时间:2024/06/09 19:34:49
#include <stdio.h>
void main()
{
int a,b,c;
a=b=c=8;
!a&&b++&&c;
printf("%d, %d, %d\n", a, b, c);
--a||b&&c||++b;
printf("%d, %d, %d\n", a, b, c);
}
为什么会输出那样的结果 ?

运行
!a&&b++&&c;
这里!a是0,那么由短路原理,直接不执行后面的b++&&c;而这里的a也没有变。即a,b,c保持原值8

--a||b&&c||++b;
--a的结果是7,并且a=7,由短路原理也不执行后面的。
故a=7,
b,c保持原值8