main() {int a=1,b=1,c=1,y; y=++a&&++b||++c ; printf("...

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/29 12:50:50
main(){inta=1,b=1,c=1,y;y=++a&&++b||++c;printf("...main(){inta=1,b=1,c=1,y;y=++a&&++b||++c;prin

main() {int a=1,b=1,c=1,y; y=++a&&++b||++c ; printf("...
main() {int a=1,b=1,c=1,y; y=++a&&++b||++c ; printf("...

main() {int a=1,b=1,c=1,y; y=++a&&++b||++c ; printf("...
预备知识:++a相当于a=a+1;
"&&"表示相与,两个不为零的数相与才等于1,其它情况皆为0;而且特别要注意,例如a&&b;当a语句的值为0时,因为无论b语句为何值,a&&b语句都为假,所以程序不会去执行b语句;
"||"表示相或,两个都为零的数相或才等于0,其它情况皆为1;而且特别要注意,例如,a||b;
当a语句的值不为0时,因为无论b语句为何值,a||b语句都为真,所以程序不会去执行b语句;
下面就来分析这条语句: y=++a&&++b||++c ;
1. ++a = 2;++b =2;所以++a&&++b等于1;
2. 1||++c;根据相或的性质,程序不会执行++c语句,所以c的值仍然为1;
最后输出全部变量的值: a = 2; b = 2; c = 1; y = 1;
PS:楼上的那位,麻烦你把代码放进软件里编译下再出来教人吧..最后输出c的值是1而不是2呀..