楼主:
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