[英]Can someone explain to me why c=1?
我最近一直在學習 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);
}
您將表達式a == 10
的結果分配給 c,如果條件為真(a 等於 10)則返回 1,如果條件為假則返回 0。
a = 10
是賦值操作,而a == 10
是比較。 賦值完成后,賦值返回左操作數的值。 在您的情況下,您將值 10 分配給 a,然后返回 a 的值,因此a = 10
計算結果為 10。
根據兩個操作數是否相等,比較返回 1 或 0。 在a == 10
的情況下,它們相等,因此整個表達式的計算結果為 1。
a == 10
是一個比較,它返回1
或0
。 由於a
值為 10,因此此比較返回1
分配給c
。 因此c
值為1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.