大家好
小弟最近在自學C語言
有個問題想請問
如果以以下的函式當範例
#include <iostream>
using namespace std;
int main(void)
{int a=9;
cout<< (a=a++)<<endl;
cout<< a
return 0;
}
這樣子執行出來的結果兩個都是9
想問的點在於 a=a++
++作用完後就不會assign給a了
++的運算順序不是在=之前嗎
是因為什麼原因讓++運算的結果沒辦法assign呢
如果我今天想要的效果是
cout之後加一
只能用其他寫法了嗎
(另外寫一個a=a+1之類的)
先謝謝好心人了m(_ _)m
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 66.86.130.129
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464407865.A.838.html
→
05/28 12:00, , 1F
05/28 12:00, 1F
→
05/28 12:00, , 2F
05/28 12:00, 2F
1.我是看台大開放式課程的講解
上面寫的運算優先順序是
++ -- + - !這些大於= += -= *= /= %=
2.覺得對於這個運算子的用法不是很了解所以上來問問看
希望可以更了解運算的原理
說不定對於了解其他的指令有幫助
推
05/28 12:14, , 3F
05/28 12:14, 3F
推
05/28 12:19, , 4F
05/28 12:19, 4F
→
05/28 12:19, , 5F
05/28 12:19, 5F
感謝回答
我想我知道盲點在哪了
影片中老師在上課的時候就只舉a=a++為例
其實應該要寫出整個函式才能正確的運算
嗯...完全是個美麗的誤會
推
05/28 13:26, , 6F
05/28 13:26, 6F
推
05/28 16:34, , 7F
05/28 16:34, 7F
→
05/28 16:35, , 8F
05/28 16:35, 8F
→
05/28 16:37, , 9F
05/28 16:37, 9F
→
05/28 16:41, , 10F
05/28 16:41, 10F
感謝回答
噓
05/28 21:25, , 11F
05/28 21:25, 11F
噓
05/28 21:27, , 12F
05/28 21:27, 12F
噓 pttuser:
上面不小心修到推文 抱歉
我以前買了一本柴田望洋的明解C語言
覺得裡面的東西沒有講解聽不太懂
去找了台大的開放式課程看影片
台大教的是C++
所以內容跟書不太一樣
我現在問的是影片的內容
但是我一開始的確是在學C語言
這樣子有回答到你的問題嗎
http://i.imgur.com/X7bkSJ3.jpg
![](https://i.imgur.com/X7bkSJ3.jpg)
推
05/28 21:39, , 13F
05/28 21:39, 13F
影片中 老師講完++運算子之後
"在空白的黑板上寫下a=a++"
說:那這個會有什麼結果?同學有興趣可以回家做做看
根據他前面講的內容
做出來之後跟想像的不一樣我才會有上面的問題
因為測試結果跟想的不一樣
我覺得++搭配其他的函數一起用才會有正確的結果
例如搭配for等等的
→
05/28 21:49, , 14F
05/28 21:49, 14F
推
05/29 13:47, , 15F
05/29 13:47, 15F
廖婉君
推
05/29 14:36, , 16F
05/29 14:36, 16F
→
05/29 18:09, , 17F
05/29 18:09, 17F
感謝回答
→
05/30 10:18, , 18F
05/30 10:18, 18F
→
05/30 13:45, , 19F
05/30 13:45, 19F
感謝推薦
※ 編輯: nikuman (66.86.130.129), 05/31/2016 01:19:10