新微赢技术网

标题: [求助]"++ix"真的是指在使用前自增吗? [打印本页]

作者: 天之骄灵    时间: 2009-11-4 00:00
标题: [求助]"++ix"真的是指在使用前自增吗?
我是初学者,正在学习vector时突然对例子中的++ix产生了疑问,如下所示,我的理解是第一次执行此循环时第二行的ix具体值应该是1,因为我对++ix理解就是在任何语句使用它之前先自增。但是这个例子的目的明明是把一个数组的值赋给另一个数组,难道下标为0的第一个元素被略过了吗?我想肯定是自己没有搞清某些东西,希望大家能够给些意见,谢谢。

for ( int ix = 0; ix < elem_size; ++ix )
ia[ ix ] = ivec[ ix ];
作者: 祗↘爲.輝仔    时间: 2009-11-4 00:00
那你对for循环没有搞清楚
作者: 逍遥◆爱你    时间: 2009-11-4 00:00
for中几乎没有区别,因为它的执行顺序for(partA;partB;partC)

首先partA

然后每次循环之前先partB
循环之后partC

相当于for(int i=0;i<size;){
...
i++/++i; //在最后都一样
}
这样就不难理解了吧
++i和i++只是效率不同,++i的效率应该更高点
作者: 藤蘿下的陽光    时间: 2009-11-4 00:00
++i 是左值
i++ 是右值
作者: ㄣ紸縡のoァ    时间: 2009-11-4 00:00
原来是这样,谢谢各位,弄明白了。
作者: 亚提斯    时间: 2009-11-4 00:00
以下是引用虫虫飞ya飞在2006-9-18 10:48:22的发言:

for中几乎没有区别,因为它的执行顺序for(partA;partB;partC)

首先partA

然后每次循环之前先partB
循环之后partC

相当于for(int i=0;i<size;){
...
i++/++i; //在最后都一样
}
这样就不难理解了吧
++i和i++只是效率不同,++i的效率应该更高点
谁说的??真的??




part A;
while(part B)
{
part C;
}
昨天刚要发,停电了/.......
上面相当于
int i=0;
while(i<size)
{
..........
++i;
}




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2