簡體   English   中英

無法理解為什么產生此輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM