我最近一直在學習 c 并遇到了這個問題。我明白 b=(a=10)=10 (如果我的思維程序有誤,請糾正我)但我不明白為什么 c=1,所以如果有人能向我解釋它會很神奇。謝謝
#include <stdio.h>
int main()
{
int a = 10;
int b=(a=10);
int c=(a==10);
printf("B %d\n",b);
printf("C %d\n",c);
}
uj5u.com熱心網友回復:
您將運算式的結果分配給 c,a == 10如果條件為真(a 等于 10)則回傳 1,如果條件為假則回傳 0。
a = 10是賦值操作,而a == 10是比較。賦值完成后,賦值回傳左運算元的值。在您的情況下,您將值 10 分配給 a,然后回傳 a 的值,因此a = 10計算結果為 10。
根據兩個運算元是否相等,比較回傳 1 或 0。如果a == 10它們相等,則整個運算式的計算結果為 1。
uj5u.com熱心網友回復:
a == 10是一個比較,它回傳1或0。由于 的值為a10,此比較回傳1分配給 的c。的這樣的值c就是1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/356320.html
標籤:C
