inta=3,b=4,c=5;执行完表达式a++>b--&&b++>c&&++c 后abc的值为多少

如题所述

#include<stdio.h>
void main()
{ int a=3,b=4,c=5;
a++>b--&&b++>c&&++c;
printf("a=:%d\n",a);
printf("b=:%d\n",b);
printf("c=:%d\n",c);
}
答案是:
a=:4
b=:3
c=:5追问

能否讲解一下?

追答

&连接两条表达式的话,执行的时候会将两条表达式都算出来,再进行与运算;而&&连接的话,只要第一条表达式为假,则不计算第二条表达式。

a++ 先参与运算,再自增
++a先自增,再参与运算

分开来解答:a++>b--&&b++>c 首先比较a++>b-- ++或--在后面时进行比较,是以计算前的值来进行比较的 a=3,b=4 a>b就为假,那么a++>b--也是假的,后面的不再计算了。结果就出来了

追问

可是b为什么等于3?3>4是假的所以a++>b--也是假的后面的就不算了可b不应该等于4吗?a=3吗?

追答

a++ 和 b-- 进行a++>b--比较的时候,a=3.b=4
比较之后 a++ 的意思是a=a+1,最终a=3+1=4 b--的意思是b=b-1,最终b=4-1=3

温馨提示:答案为网友推荐,仅供参考