請看下面一段代碼,是很簡單的運算代碼,摘自不知道哪位大俠寫的C語言面試題中的題目,雖然簡單,特別對於初學者來說不小心還是會搞錯,我剛開始做的時候就搞錯了。
int main()
{
int x,y;
x = 20;y=35;
x = x++ + y++;
y = ++y + ++x;
printf("%d,%d/n",x,y);
return 0;
}
以上代碼實現通過計算,將x,y值求出並打印出來。
首先,x,y進行賦值,分別是20,35.計算的過程是這樣:理解這段代碼需要知道運算符++ 比運算符+優先級高,x++是先運算在進行++的操作,所以對於第5行代碼,執行過程爲,x+y值爲55,然後執行x++和y++這樣,x,y的值就分別爲56,36。
其次,執行第6行,由於++的優先級比+的優先級高,所以先執行++y和++x,這裏需要因爲++在變量前是表示先進性自加的意思,所以先對x,y都進行自加,所得出的結果++x,++y爲57,37,所以第6行的y值的結果爲94。
最後打印出來的結果爲57,94
總結:應該要注意的是++和+的優先級,另外自加運算符的使用++x和x++是由區別的,還有最重要一點是在第5行位置是先得出結果再進行++運算的。
如果有錯誤,請留言指正。