main()
{
int a = 10, b = 5, c = 5;
int d;
d = a == (b + c);
printf("%d", d);
}
输出:1
任何人都可以解释这个值如何分配给d ??
答案 0 :(得分:2)
a == (b + c)
为真,true由编译器中的1表示,这就是d变为1的原因。
如果b + c
的总和不等于10则会打印0
C false中的Remmeber由0表示,任何其他值表示为true。
因此
if(-1)
{
printf("true");
}
打印true
答案 1 :(得分:2)
==
的优先级高于=
,所以
d = a == (b + c);
相当于:
d = (a == (b + c));
它测试a
是否等于b + c
,1
如果为真,0
如果为真。
答案 2 :(得分:1)
==
如果其操作数相等则返回1,如果不相等则返回0。