menu

hjk41的日志

Avatar

突然感觉到自己的无知

今天看别人写的代码,其中有一段是这样的:

    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为一个复杂对象,++是其重载的一个运算符时
效率差异尤其明显

评论已关闭