在C語言中,不能將常量賦值給表示式這句話該怎麼理解

2021-03-19 18:22:06 字數 1117 閱讀 6307

1樓:滄海雄風

比如 賦值一般是 int a=5;那麼就是賦值但是你要是 x+y=5;這樣顯然是不對的這個是數學中的等式 不是c語言中的賦值

有問題請追問 滿意記得采納

2樓:匿名使用者

所謂賦值,例如int x ,y; x=6; x是有地址,在記憶體中是有空間的,你可以用&x來取x的地址,但是表示式,例如x+y,這個整個表示式,是沒有地址的,所以不能給它賦值。

3樓:張超

x+y=5你這樣寫可能只會把y的值負值為5如果你定義int (x+y) 這樣可以這樣寫(x+y)=5;這樣是可以的

4樓:匿名使用者

只能是變數才能賦值的x+y是表示式所以不能賦值

c語言,if(表示式)中,表示式如果是一個賦值語句,這個if就會恆真嗎?

5樓:育知同創教育

非零即真,例如

if(a=5)

else d=3;

這個語句沒有語法錯誤(可能會有警告),是可以執行的。

但是這個語句永遠沒有機會執行else部分。

a=5賦值表示式的計算結果就是5,當這個表示式出現在if語句邏輯表示式位置上的時候,它的計算結果是被當作邏輯值處理的,在c語言中用整型數表示邏輯量,非零表示「真」,所以這是一個永真式;這個if的邏輯條件永遠不會為假。

也就是說,這裡所表達的邏輯條件並不是「a的內容是否等於5」,而是向變數a中送入資料5。

6樓:匿名使用者

不一定,要看給變數賦的值是否為0

*****************************************

嘗試以下程式:

#include

void main()

這個程式會輸出 i=1,也就是說執行了第二個if語句的執行部分。

7樓:『點點滴滴

是去編譯下看有沒語法錯誤!

如果是賦值語句if語句為真。

賦值為0的你可以自己試下

8樓:匿名使用者

不會,只會發生語法編譯錯誤,if裡只可以用==判斷是否相等

C 中常量賦值是如何規定的,C語言中是如何定義常量的啊

像 42 這樣的值,在程式中被當作字面值常量。稱之為字面值是因為只能用它的值稱呼它,稱之為常量是因為它的值不能修改。每個字面值都有相應的型別,例如 0 是 int 型,3.14159 是 double 型。只有內建型別存在字面值,沒有類型別的字面值。因此,也沒有任何標準庫型別的字面值。c prime...

c語言中怎麼給三維陣列賦值,C語言中怎麼給三維陣列賦值。

struct point point p1 point malloc 你需要的數目 sizeof point 完全不需要3維陣列,一個結構加個指標就可以了.c語言中三維陣列的賦值問題 int limit 4 5 2 你這樣定義是 int limit 20 2 int limit 4 5 2 應該是 ...

在C語言中把小數賦值給int型別的然後用d佔位符輸出,結果只輸出了整數部分

你前面定義的哪個型別,你可以試一試 l,小數定義也可以試一試double c語言的 ld d u是啥意思啊?這幾個都是c語言格式化輸入輸出時使用的格式符號。其中 u為誤寫,實際為 u。格式化輸出函式包括printf,fprintf,sprintf等等。格式化輸入函式包括scanf,fscanf,ss...