C語言 關於賦值錯誤的問題,C語言賦值問題

時間 2023-05-13 12:21:07

1樓:幹嗎尋找周杰倫

注意看這裡(((a+b)*(b-a+1))/2=m),正確的應該是(((a+b)*(b-a+1))/2==m)。如果只有乙個=的話,這是乙個賦值表示式,賦值表示式的左運算元怎麼可能還是乙個表示式呢?

2樓:

if((a<=b)&&b-a+1)<=n)&&a+b)*(b-a+1))/2=m))

這句語句錯了,我不知道你是不是想寫成(((a+b)*(b-a+1))/2==m)(=變成==)

這個的錯誤是,等號前面是表示式,表示式的結果是乙個臨時變數,你把m賦值給乙個臨時變數,肯定錯了。臨時變數不能做左值。

要不改成==,表示相等,如果就是賦值,把m寫前面就可以了,把運算的值賦給m

3樓:律爾文之

「=」是賦值號,意思是把右邊的賦值給左邊的變數,應該用 if((a<=b)&&b-a+1)<=n)&&a+b)*(b-a+1))/2==m))

c語言賦值問題

4樓:匿名使用者

先判斷a>b是否為真。

a=1,b=2,ab為假,值為0。

是與運算,從左至右運算表示式,只要有乙個表示式的值為0,運算的結果就為0,不再繼續運算後面的表示式。因此後面的++c不再執行,c的值仍然是3。

選第二個。

5樓:縹緲一樣

c. a=7+b,b++,a+7

問題出現在沒有 [;結束。

本身賦值沒有問題,可以這樣理解 a = 7+b,b++,a+7) 括號內是乙個逗號表示式,計算結果是依次計算,取最後乙個值。也就是 a = a+7。

d. a=7+b,c=a+7;

結果測試沒有問題。

e a=7+b++=a+7;

首先賦值運算子是從右向左進行的,如 a = b = c; 這句會先把c的值賦值給b, 再把b的值賦值給a。(不過,非常不建議如此賦值)

這裡 7+b++=a+7 中 7+b++ 是不能當作左值的,也就是不能被賦值,會出現問題。

在c語言中沒有對變數賦值,它的值是否自動賦0?

6樓:綠子與我

它的值是否會自動賦值為0,取決於變數的型別。

全域性變數包括靜態全域性變數和非靜態全域性變數,在沒有初始化值時,其值自動為0,即定義在所有函式外,不歸屬於任何乙個函式的,在沒有初始化值時,自動為0;

靜態全域性變數當定義在函式內的全域性變數,有static標記時,預設初始化為0值;

非靜態全域性變數沒有預設初始值,c語言規定初始化值為隨機值,但具體的實現由編譯器決定。

c語言,是一種通用的、過程式的程式語言,廣泛用於系統與應用軟體的開發。具有高效、靈活、功能豐富、表達力強和較高的移植性等特點,在程式設計師中備受青睞。最近25年是使用最為廣泛的程式語言。

c語言賦值問題求解。

7樓:風若遠去何人留

(a=2,b=4,c=a*b)

這個是逗號運算。

運算規則為 從左到右 ,最終表示式值 為最右的值。

於是依次。a=2b=4

c=a*b=8

表示式值為8

賦值 d=8

8樓:網友

8,逗號表示式的值是最後乙個表示式的值。

c語言賦值問題

9樓:網友

考察三個知識點:

1.逗號表示式的值為逗號右邊的值,比如a=(b,c),則a=本身可以作為右值。

3.括號改變順序 0 0(這點忽視了吧)

a=(b=(c=2,d=3)) 關鍵就在於那個逗號部分,根據知識點1,b=3 知識點2 a=3

10樓:網友

c=2,d=3)逗號取最後乙個,返回三,以此類推,a = 3

c語言的賦值問題,C語言指標的賦值問題

上面的說法中,都存在錯誤或不足.1.首先 c a b 的意義是把 a 和 b 這兩個變數的內容 5 和 6 相加得 11,再把 11 這個結果值傳送至 變數 c 所在的儲存單元儲存起來 而不是你想像的 將 a 和 b 這兩個變數組合為一個變數作為 c,或者複製一份變數組合再作為 c.當你用int a...

關於c語言的問題,關於C語言的問題

鷹弈 1 有定義 int n 0,p n,q p 則以下選項中,正確的賦值語句是 d a.p 1 b.q 2 c.q p d.p 5 解 p為一級指標,其中p為指標的地址,q為二級指標,其中 q為指標的地址,只能給變數或指標變數賦值,不能給地址賦值,所謂地址,就是由acs碼構成,簡單的說,就是每個人...

C語言賦值語句,C語言中賦值語句有什麼規則要求?

選ab中取模右邊不是整數 c中賦值號左側不是一個變數 d中第二個賦值號左側不是一個變數 吉祥二進位制 c語言中通過 運算子來實現賦值,有時候也用它來進行初始化,在c語言中初始化和賦值是完全兩個不同的概念。比如下面的 int a 10 這是初始化a 0 10 這是賦值 初始化是一個順序點,編譯器保證每...