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 這是賦值 初始化是一個順序點,編譯器保證每...