[問題] 關於++運算子的問題消失

看板C_and_CPP作者時間8年前 (2016/05/28 11:57), 8年前編輯推噓5(7210)
留言19則, 13人參與, 最新討論串1/1
大家好 小弟最近在自學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
1: 為什麼你會認為++運算順序在=之前。
05/28 12:00, 1F

05/28 12:00, , 2F
2: 為什麼你會想要寫這種(中略500字)的程式。
05/28 12:00, 2F
1.我是看台大開放式課程的講解 上面寫的運算優先順序是 ++ -- + - !這些大於= += -= *= /= %= 2.覺得對於這個運算子的用法不是很了解所以上來問問看 希望可以更了解運算的原理 說不定對於了解其他的指令有幫助

05/28 12:14, , 3F
置底13戒之8,你那樣寫結果誰都不知道,沒事別把code縮短
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
先++應該要是++a吧?
05/28 13:26, 6F

05/28 16:34, , 7F
a++ 的確會比 = 先執行
05/28 16:34, 7F

05/28 16:35, , 8F
把 a++ 看作一個函式,a++ 返回值是還沒遞增時的 a
05/28 16:35, 8F

05/28 16:37, , 9F
反過來說 ++a 的回傳值是遞增後的 a
05/28 16:37, 9F

05/28 16:41, , 10F
我是認為最好習慣把a++;做為獨立一行step啦
05/28 16:41, 10F
感謝回答

05/28 21:25, , 11F
c 有namespace?
05/28 21:25, 11F

05/28 21:27, , 12F
是我孤陋寡聞還是原po搞不清楚自己學得是什麼?
05/28 21:27, 12F
噓 pttuser: 上面不小心修到推文 抱歉 我以前買了一本柴田望洋的明解C語言 覺得裡面的東西沒有講解聽不太懂 去找了台大的開放式課程看影片 台大教的是C++ 所以內容跟書不太一樣 我現在問的是影片的內容 但是我一開始的確是在學C語言 這樣子有回答到你的問題嗎 http://i.imgur.com/X7bkSJ3.jpg

05/28 21:39, , 13F
你說的盲點是什麼意思? "a=a++"這個程式從頭錯到尾
05/28 21:39, 13F
影片中 老師講完++運算子之後 "在空白的黑板上寫下a=a++" 說:那這個會有什麼結果?同學有興趣可以回家做做看 根據他前面講的內容 做出來之後跟想像的不一樣我才會有上面的問題 因為測試結果跟想的不一樣 我覺得++搭配其他的函數一起用才會有正確的結果 例如搭配for等等的

05/28 21:49, , 14F
to pttuser,息怒息怒,分不清楚C與C++的人到處都是
05/28 21:49, 14F

05/29 13:47, , 15F
哪個教授
05/29 13:47, 15F
廖婉君

05/29 14:36, , 16F
a = a++ 給不同編譯器會有不同答案
05/29 14:36, 16F

05/29 18:09, , 17F
a++跟++a都遞增,只是前者返回一開始還沒+的值
05/29 18:09, 17F
感謝回答

05/30 10:18, , 18F
他應該是讓你們自己去學甚麼是undefined behavior
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
文章代碼(AID): #1NIHSvWu (C_and_CPP)