前++与后++问题??

孤单北风 2003-12-30 09:53:58
下面一段程序输出结果
void main()
{
int index = 0;
for (i=0;i<10; i++,++index)
{
cout<< i <<" ";
cout<< index << endl;
}

}

0 0
1 1
。。。
9 9
能帮我解释一下为什么不能出现
0 1
1 2
。。。
9 10
主要是前++ 与后++ 在for 循环中是否运行结果一样

编译器为vc6.0(english) + sp5 /windows 2000 pro
...全文
58 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lostgdi731 2003-12-30
  • 打赏
  • 举报
回复
devzhao(Vceditor)
答对了,这个和++在前后是没关的(对于你这个 sample)
lzzqqq 2003-12-30
  • 打赏
  • 举报
回复
其实如果分别单独执行这两条语句,所得的结果没有任何曲别:
++i;
i++;
那么曲别是什么呢?
让我告诉你,一旦将这两条语句放入到表达式中,就有曲别了。记住了吗?
给分吧。。。。
lzzqqq 2003-12-30
  • 打赏
  • 举报
回复
小么子,看来你的基础还是不行啊。。。。
改成下面的样子就会出现第一种结果,原因嘛,还是自己动动脑子吧。。。

int index = 0;
for (i=0;i<10; index=++i)
{
cout<< i <<" ";
cout<< index << endl;
}
NULL_OOK 2003-12-30
  • 打赏
  • 举报
回复
调试运行时在循环前中断,用Alt+8调出汇编代码观察窗口,你可在以这些代码中找到答案,如果你在BCB中运行会发现有些++指令会被编译为不一样的汇编代码。
fxq2000monkey 2003-12-30
  • 打赏
  • 举报
回复
笔误是for(int i=0,index++;i<10;i++){}
fxq2000monkey 2003-12-30
  • 打赏
  • 举报
回复
你应该认真的观察一下 循环体

当第一次进入循环时 是不执行for中的第三个参数( i++,++index)的
所以第一次输出 0 0 这是必然
如改为
for(int i=0,index++;i<10,i++)
{...}就ok了;
当然改的方法很多!!!
eastred 2003-12-30
  • 打赏
  • 举报
回复
index=0;
i=0;
while(i<10)
{
cout<< i <<" ";
cout<< index << endl;
i++;
++index;
}
//////////////////////////////////
同意

在这里,++i和i++效果相同~
platinum15 2003-12-30
  • 打赏
  • 举报
回复
哈哈!可能是笔误吧!
曾经的猎狐 2003-12-30
  • 打赏
  • 举报
回复
index=0;
i=0;
while(i<10)
{
cout<< i <<" ";
cout<< index << endl;
i++;
++index;
}
/////////////////////////////////
同意
devzhao 2003-12-30
  • 打赏
  • 举报
回复
to:wangweintk(枫杨)
严重不同意
++index 等同于 index = index+index
devzhao 2003-12-30
  • 打赏
  • 举报
回复
你写得相当于:
index=0;
i=0;
while(i<10)
{
cout<< i <<" ";
cout<< index << endl;
i++;
++index;
}
wangweintk 2003-12-30
  • 打赏
  • 举报
回复
i++ 等同于 i= i+1

++index 等同于 index = index+index
devzhao 2003-12-30
  • 打赏
  • 举报
回复
循环体自增量是在每次循环结束时才自增的,所以在for(i=0;i<MAX;i++)和
for(i=0;i<MAX;++i)是一样得效果

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧