已知变量a,b,c的值分别为1、2、3,求表达式a=b=c,a=b==c,a== (b=c)和a==(b==c)的值
1个回答
展开全部
这里要考虑结合性和优先级的问题,
四个表达式:
①a=b=c ;析:赋值号“=”的结合性从右向左,因此先执行b=c,得到b=3,然后进行a=b,得到a=3,最后该表达式的值就是a的值3。
②a=b==c ;析:赋值号优先级低于关系运算符“==”因此先进行b==c的运算,c语言规定,一个关系表达式0表示假,非0表示真,但通常不用其他数字而用1表示真,因此b==c的值就是0,因此a=b==c结果就是a=0;
③a==(b=c); 析:括号的优先级最大,先进行 b=c的运算,结果为b=3,然后进行a==b的运算,a=1,b=3,显然不想等,表达式的值为0.
④a==(b==c); 析:同上,b==c结果为假,也就是0,a==(b==c)也就是a==0结果为假,因此最后结果为假,也就是0!
四个表达式:
①a=b=c ;析:赋值号“=”的结合性从右向左,因此先执行b=c,得到b=3,然后进行a=b,得到a=3,最后该表达式的值就是a的值3。
②a=b==c ;析:赋值号优先级低于关系运算符“==”因此先进行b==c的运算,c语言规定,一个关系表达式0表示假,非0表示真,但通常不用其他数字而用1表示真,因此b==c的值就是0,因此a=b==c结果就是a=0;
③a==(b=c); 析:括号的优先级最大,先进行 b=c的运算,结果为b=3,然后进行a==b的运算,a=1,b=3,显然不想等,表达式的值为0.
④a==(b==c); 析:同上,b==c结果为假,也就是0,a==(b==c)也就是a==0结果为假,因此最后结果为假,也就是0!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询