突然感觉到自己的无知
今天看别人写的代码,其中有一段是这样的:
for( i = 0; i < numOfNds; ++i )
{
pBNet->AllocFactor(i);
CFactor* pFactor = pBNet->GetFactor(i);
pFactor->AllocMatrix( table[i], matTable );
}
看那个 ++i 怎么都不顺眼,以为循环里得到的 i 会从1开始算,结果自己写了一个
for(int i=0;i<10;i++)
cout<<i<<endl;
发现出来的结果是 0 1 2 ...,汗……
看来自己的基础还是很薄弱的,需要好好补补了
这儿++i和i++都没啥区别,主要是for的定义的问题,呵呵
但一般大家习惯用++x
例如 a = b + (c++)这样的情况会被解释成这样的语句
d = c;
c = c+1;
a = b+d;
多出来一个d,而++c就不会有这样的情况。
当c为一个复杂对象,++是其重载的一个运算符时
效率差异尤其明显