永发信息网

这个小代码里面为什么用i++和用++i的结果是一样的啊?

答案:4  悬赏:40  手机版
解决时间 2021-04-16 13:15
  • 提问者网友:树红树绿
  • 2021-04-15 20:46

main()
{
int n[40]={1,1};
int i;
for(i=2;i<40;i++)

n[i]=n[i-2]+n[i-1];

for(i=0;i<40;i++)
{
if(i%4==0)printf("\n");

printf("n=%-12d",n[i]);
}


}

i++和++i,难道相同?

不是一个是 先用再加,另一个是先加再用吗?

最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-04-15 21:07
一个是 先用再加,另一个是先加再用。
不过只是针对于当前的代码。执行到下一步代码的时候,再取值的话,都相当于是加过再用,就是一样的值了。
全部回答
  • 1楼网友:三千妖杀
  • 2021-04-15 23:53

因为for(1;2;3){ 4 }中,先执行1部分,之后是2,然后程序进到{ }中执行4,执行完后执行3,之后再 2,4,3,2,4,3。。。所以在for()中 看不出i+ + 与 + + i 的效果。

void main()

{

int i = 0;

printf("%d\n",++i); //输出 1

i = 0;

printf("%d\n",i++); //输出 0

}

  • 2楼网友:一秋
  • 2021-04-15 22:47
那是在一个表达式中引用到它的值的时候, 在此处就等于是单独的一句i++,和i=i+1没啥两样。
  • 3楼网友:迟山
  • 2021-04-15 22:21
i++是先用再加 ++i是先加再用 不过单独用的时候,都是i=i+1,没什么区别! 而 a = ++i,相当于 i=i+1; a = i; (先i = i + 1,再使用i的值) 而 a = i++,相当于 a = i; i=i+1; (先使用i的值,再i = i + 1)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯