[英]Can't understand why this output is produced
main()
{
int a = 10, b = 5, c = 5;
int d;
d = a == (b + c);
printf("%d", d);
}
輸出1
誰能解釋這個值是如何分配給d的?
a == (b + c)
是true,true由編譯器中的1表示,這就是d變為1的原因。
如果b + c
的總和不等於10,那么它將打印0
C false中的Remmeber用0表示,其他任何值表示true。
從而
if(-1)
{
printf("true");
}
打印真實
==
的優先級比=
,因此
d = a == (b + c);
等效於:
d = (a == (b + c));
它測試a
是否等於b + c
,如果為true,則為1
,如果為false,則為0
。
==
如果其操作數相等則返回1,否則返回0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.