其實講義寫得很明白 //但是我看得很模糊
讓我們看看講義128頁 遞增運算
++
●後置 and 前置
int a = 5;
//a++ 即 a = a + 1
a++; /* 5為此後置Expression的值 */
a=5;
//++a 即 a = a + 1
++a; /* 6為此後置Expression的值 */
喔 我的天 是我眼花嗎
a++ 即 a = a + 1
++a 即 a = a + 1
那他們到底有他X的什麼不同???
我們看看曹山的說法
曹山:這一切都沒有錯,只不過你走進了黃泉路666號
以上博君一笑,以下解答
單看a++和++a的確沒啥不同 都是a = a + 1的意思
但是與其他運算式加在一起就有所分別
範例
從結果來看就很清楚
x++和++x都會重新對x的值+1
所以
第3行 X初值為10
第4行 X值改為11
第5行 X值改為12
而後面c d 前面有10 * 運算
其意義為
10 * x++ 為[10先乘x]再將[x = x + 1]
10 * ++x 為[先將]x = x + 1[再乘10]
所以
第6行可以看做
c = 10 * x;//x=12
x = x + 1;//x=13
第7行可以看做
x = x + 1;//x=14
d = 10 * x;//x=14
簡單來說
x++ 就是會先與其他算式運算 之後才 x = x + 1 將x值增1
++x 就是先 x = x + 1 將x值增1 之後才與其他算式運算
不好意思,不懂為什麼x=10,a已經x++了,最後輸出還是a=10?
回覆刪除因為x++的順序比a=x後面 a=x之後才做x++ 所以第四行執行後a=10而x=11
回覆刪除