平時沒注意的++運算符

請看下面一段代碼,是很簡單的運算代碼,摘自不知道哪位大俠寫的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行位置是先得出結果再進行++運算的。

如果有錯誤,請留言指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章