c语言中 a=b>c 和a==b>c 中有啥子不同
c语言中 a=b>c 和a==b>c区别为:执行步骤不同、结果值不同、结果对象不同。
一、执行步骤不同
1、a=b>c:a=b>c的执行步骤为b>c。
2、a==b>c:a==b>c的执行步骤为先b>c,再a==(b>c)。
二、结果值不同
1、 a=b>c:如果b比c大,则 a的结果值为true;如果b比c小或相等,则 a的结果值为false。
2、a==b>c:如果b比c大,且a为true,则a==b>c的结果值为true;如果b比c大,且a为false,则a==b>c的结果值为false;如果b比c小,且a为false,则a==b>c的结果值为true;如果b比c小,且a为true,则a==b>c的结果值为false。
三、结果对象不同
1、 a=b>c: a=b>c的结果对象是变量a。
2、a==b>c:a==b>c没有结果对象,只有结果值是。
一、a==b>c和a==(b>c)是一样的表达方式,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1。
1、若为真,a为1则该表达式为真,即该符合表达式的值为1。
2、若为假,a不为0则该表达式为假,即该符合表达式的值为0。
二、a=b>c和a=(b>c)是一样的表达方式,先判断b>c是否成立,如果成立,把1赋给a。
1、如果b>c为假,则把0赋值给a。
2、如果b>c为真,则把1赋值给a,
扩展资料
C语言中a=b=c,a=b==c,a==(b=c),a==(b==c)的使用
#include<stdio.h>
main()
{
inta=4,b=2,c=3;
intd=8;
printf("%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c));
//system("pause");
printf("%d,%d\n",++d,--d);
printf("%d\n",5==3);
/*这两个个表达式说明==判断语句输出的结果只有1或0;
*/
printf("%d",5==5);
return1;
}
第二个,先判断b>c是否成立,如果成立,用1和a比较,如果a=1,则整个表达式为1,否则整个表达式为0。
2011-12-28
a=(b>c)a最后的结果不是0就是1,这可以说是一个赋值表达式
a==b>c
a==(b>c),这个是判断表达式
(1)如果b>c为真,则把1赋值给a,
(2)如果b>c为假,则把0赋值给a。
(3)运行完该表达式,仅a的值改变,b、c的值不变。
2.a==b>c也相当于a==(b>c)是一个符合表达式,先判断(b>c)的真假,
(1)若为真,a为1则该表达式为真,即该符合表达式的值为1。
(2)若为真,a不为1则该表达式为假,即该符合表达式的值为0。
(3)若为假,a为0则该表达式为真,即该符合表达式的值为1。
(4)若为假,a不为0则该表达式为假,即该符合表达式的值为0。
(5)运行完该表达式,a、b、c的值都不发生改变。