作者:
nikuman (nikuman)
2016-05-28 11:57:43大家好
小弟最近在自學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
1: 為什麼你會認為++運算順序在=之前。2: 為什麼你會想要寫這種(中略500字)的程式。
作者:
os653 2016-05-28 12:14:00置底13戒之8,你那樣寫結果誰都不知道,沒事別把code縮短
除了最基本的四則運算,不要花太多時間研究這個不要去省括號
作者:
dces4212 (flawless)
2016-05-28 13:26:00先++應該要是++a吧?
作者:
noodleT (麵T)
2016-05-28 16:34:00a++ 的確會比 = 先執行把 a++ 看作一個函式,a++ 返回值是還沒遞增時的 a反過來說 ++a 的回傳值是遞增後的 a
作者:
testPtt (測試)
2016-05-28 16:41:00我是認為最好習慣把a++;做為獨立一行step啦
作者: pttuser (pttuser) 2016-05-28 21:25:00
c 有namespace?是我孤陋寡聞還是原po搞不清楚自己學得是什麼?
作者:
suhorng ( )
2016-05-28 21:39:00你說的盲點是什麼意思? "a=a++"這個程式從頭錯到尾
作者:
Caesar08 (Caesar)
2016-05-28 21:49:00to pttuser,息怒息怒,分不清楚C與C++的人到處都是
作者:
CaptainH (Cannon)
2016-05-29 13:47:00哪個教授
作者:
hunandy14 (Charlott.HonG)
2016-05-29 18:09:00a++跟++a都遞增,只是前者返回一開始還沒+的值
作者:
Caesar08 (Caesar)
2016-05-30 10:18:00他應該是讓你們自己去學甚麼是undefined behavior