A. c語言 自加運算符
C語言中區分前自增與後自增,它們都有副作用,尤其是後自增。
前自增可能更好一點,它不產生臨時變數,效率更高一些。
++y相當於:y=y+1;在變數的使用之前先自增。
y++相當於:y; 其它語句... y=y+1;也就是使用它時,它的值不變,在其使用之後的某一時刻但在再次使用它前其值加一。而且不同的編譯器不一定有一致的實現行為。
a=(y++)+(y++)+(y++) 這是一條語句,通常的編譯器實現會將此語句一次性掃描完成。這種情況下,y++會保持其值不變,此語句完成後,將y的值遞增3次。
b=(++y)+(++y)+(++y)這也是一條語句,編譯器掃描完此語句後,先將y遞增3次,再作+運算,將運算結果賦予b,此時b應該為24。 但是不同的系統及編譯器不一定這樣實現,還有可能y依次遞增,其結果是21。
B. C語言符號常量可以用自加嗎
常量 不可以自加
因為常量值是不能修改的
只能變數自加。
C. c語言自加運算符
呵呵,這個問題,鑽牛角尖里了
a++; 沒錯,先運算 後自加;先取得a的值5,取完之後干什麼呢?返回?其他運算?也沒有要求它返回阿?也沒有其他運算阿?所以 「先運算」 到此就完畢了,接著干什麼?當然是 「自加」,a 就成了6了,輸出6 難道有什麼問題嗎?
你還想等printf後再 「自加」? 那要沒有printf直接返回了,豈不永遠也自加不了了?
先運算 後自加 或者其他,都是說 「在表達式內部的先後次序」,離開這個表達式,運算已經完成了,a++後面的分號,表明表達式已經結束了
如果還不能理解,那就改行吧
D. 關於c語言中自增問題
i就不用說了吧,本來就是8,C語言中負號運算符與自加運算符的優先順序相同,結合方向是
「自右至左」,表達式-i++就相當於對表達式,-(i++)進行運算,此時自加運算符「++」為後綴運算符,(i++)的值為8,因此-(i++)的值為-8,只是i自增為9,但表達式(i++)的值還是8
i++是表達式先取I的值,然後 i 進行增1運算,而++i則先進行 i 增1運算,,表達式的值也增1
希望能幫到你,我也在搞這個C語言
E. C語言自加符號
C語言中區分前自增與後自增,它們都有副作用,尤其是後自增。
前自增可能更好一點,它不產生臨時變數,效率更高一些。
++y相當於:y=y+1;在變數的使用之前先自增。
y++相當於:y; 其它語句... y=y+1;也就是使用它時,它的值不變,在其使用之後的某一時刻但在再次使用它前其值加一。而且不同的編譯器不一定有一致的實現行為。
a=(y++)+(y++)+(y++) 這是一條語句,通常的編譯器實現會將此語句一次性掃描完成。這種情況下,y++會保持其值不變,此語句完成後,將y的值遞增3次。
F. c語言自加運算符
如果printf("%d",a++);那麼結果就是五,a++單獨成一個語句時,效果等同於:a=a+1;和++a;
你也是初學者?用電腦加我為好友,以後互相交流…我為了弄懂這個也問倒幾個高手,不是難倒,是煩倒…因為我要問個一清二楚!Q960575562
G. C語言中++(自增運算符)只能用於變數不能用於變數嗎,為什麼
只能用於變數不能用於常量,這是語法規定,常量作為只讀變數,直接對常量修改在編譯階段就會報錯,const修飾的變數也是只讀變數,禁止修改。操作方法如下:
1、首先,定義一個變數i,並賦初值6。
H. c語言數組中引用時可以用自增符號嗎
數組不可以++
指針變數可以實現本身的值的改變。如char *p="abc"; p++是合法的;
而數組char arr[] = "abc"; arr++是錯誤的。因為arr是數組名,
它是數組的首地址,是常量,而指針時變數。 但是可以a[0]++;
自增運算符的操作對象要求是可修改的左值,但是數組名不是可修改的左值