C語言多次賦值問題,C語言中使用巨集定義多次賦值的問題

時間 2021-10-17 04:39:55

1樓:項成郟卯

a正確顯然,

b正確n2/n3直接截斷小數部分返回一個整數,c正確,賦值語句是左優先順序的,這個語句先把j賦給i,再把i賦給k,d是不正確的,和c類似,不過第一次賦值,b+c=1,賦值語句的左側是變數,不能是一個表示式,

2樓:鍾全婁卯

如果要達到原來的效果,就不可能寫成後面的形式。

s=a[i];

a[i]=a[p];

a[p]=s;

這三行的作用是交換a[p]和a[i]元素的值,首先將a[i]元素值暫時儲存到s變數中,之後將a[p]元素的值儲存到a[i]元素,此時a[i]和a[p]元素值相同,都是a[p]的值,最後將先前暫時儲存到s變數中的原a[i]元素的值賦值給a[p],從而完成了a[i]和a[p]的交換。

3樓:樂正秀英天茶

這段程式就是

a[p]

和a[i]的兩個值交換。

s起到中間變數儲存的作用

不能a[i]=a[p];

a[p]=a[i];

必須用中間變數。因為第一條語句執行後,a[i]已經是a[p]的值,再執行第二條a[p]被賦值a[i](最早a[p]的值),沒有達到互動值的目的。

4樓:祁桂蘭過丙

暈,s=a[i]是把a[i]備份到s上在把a[p]的值賦給a[i],然後在把a[i]的值即s賦給a[p],這個函式的作用就是a[i]的值與a[p]的互換,如果不備份的話兩個值都是a[p]了

5樓:山仁戴綢

s在程式中起到一箇中介軟體的作用,先把a[i]的值暫時存在s中,將a[p]的值賦給

a[i];然後將s賦值給a[p]。從而實現了a[i]和a[p]兩個數值的互換。

就相當於從一個桶裡向另一個裝滿水的桶裡倒水一樣,要先把其中一個桶裡的水放到第三個桶裡儲存。

c語言中使用巨集定義多次賦值的問題

6樓:匿名使用者

巨集屬於復預處理,在編譯之前完成制替換bai,因此你的描述du應該是做不到的

zhi。

其實你如果dao要定義1000個巨集,不如直接定義一次陣列,然後在初值表賦值了,然後把該陣列的內容再賦值給b。

int a[1000]=;

7樓:

for(i=0;i<1000;i++)

8樓:改笛馮昆卉

外迴圈完畢的時候ji的值已經變成上次迴圈結束時候的值了,

兩個沒有什麼特別的區別.只是如果是const變數就必須在定義時候初始化.

c語言賦值問題

9樓:匿名使用者

先判斷a>b是否為真。

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

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

選第二個。

10樓:縹緲一樣

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語言賦值語句,C語言中賦值語句有什麼規則要求?

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

C語言中static變數的賦值問題

小夏在深圳 static int a 0 執行期時初始化一次,下次再呼叫時,不進行初始化工作如下 printf d a a int main staticlocalvar 第一次呼叫,輸出a 0 staticlocalvar 第二次呼叫,記憶了第一次退出時的值,輸出a 1 return 0 擴充套件...

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

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