#include <stdio.h>
int main()
{
int a = 10, b = 5, c = 5;
int d;
d = b + c == a;
printf("%d", d);
}
在上面的代碼,可以在任何一個,請向我解釋如何d = b + c == a
作品?「==」運算符如何在表達式中工作?
#include <stdio.h>
int main()
{
int a = 10, b = 5, c = 5;
int d;
d = b + c == a;
printf("%d", d);
}
在上面的代碼,可以在任何一個,請向我解釋如何d = b + c == a
作品?「==」運算符如何在表達式中工作?
基於運營商的優先級,二進制+
具有比==
更高的優先級。因此,該語句將被歸爲,
d = (b + c) == a;
該海外
d = ((b + c) == a); // ==> d = (10 == 10);
所以,d
保持基於比較(b+c) == a
真值是1
因爲在C相比,運營商將返回1
爲真和0
爲假。
因爲算符優先的,它被解析爲
d = ((b + c) == a);
b + c
是10,它等於a
,所以d
接收值1,這是C如何表示真比較。
-1您在VoidPointer發佈2秒後,請勿抄襲。 '' – 2013-06-25 10:12:01
@ H2CO3哦,你! :-) –
它的工作原理是這樣
d = (b+c) == a --> (5+5) == 10 ---> 1
它返回1
+
操作的優先級高於==
。所以d=b+c==a;
解析爲d=((b+c)==a);
。 b+c
是10
所以(10==a)
判斷爲真。所以d=1;
是,任何經驗豐富的C程序員可以解釋它。但是,沒有人願意爲您的谷歌「C運營商」。你必須自己做。 – 2013-06-25 10:08:53
這是一個平臺,我可以清除我的疑惑。所以這樣的評論不會幫助! –
[你必須做一些研究工作。](http://stackoverflow.com/help/how-to-ask)我們不是一個「gimme teh codez」網站。 – 2013-06-25 10:23:36