为了账号安全,请及时绑定邮箱和手机立即绑定

为什么i++和++i效果一样啊?

#include <stdio.h>

int main()

{

    int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    //补全代码实现对数组arr的遍历

    //可以采用你自己喜欢的循环结果

    int i;

    for(i=0;i<10;i++)

    {

        printf("%d\n",arr[i]);

    }

    return 0;

}

就是不理解开始输入的i=0后如用i++则i先取值再自增应该是取的0啊,那就应该报错了,为什么i++也是正确的啊。



正在回答

5 回答

 for(i=0;i<10;i++)  {...}

流程是这样的:

第1次循环 取值i=0,用完后i++, i=1

第1次循环 取值i=1 , 用完后i++, i=2

...

第9次循环 取值i=8,用完后i++ ,i=9

第10次循环 取值i=9,用完后i++ ,i=10

第11次条件不满足,终止循环。

所以这里i++和++i效果是一样的,因为i自增的时候的值并没使用,而是给下一次循环用。

0 回复 有任何疑惑可以回复我~

1.对于普通独立的语句,i++和++i是一样的

    i++; 等效于i=i+1;

    ++i; 等效于i=i+1;

2. 用于赋值语句,i++先赋值后加1,++i先加1后赋值,如:

    i=1; y=i++;  等效于:i=1; y=i; i=i+1; 则执行完后 y=1; i=2;

    i=1; y=++i;  等效于:i=1; i=i+1; y=i; 则执行完后 y=2; i=2;

3. 用于判断条件表达式:如:

    a、i++:先执行判断后加1;

    b、++i:先加1后执行判断;

作者:王文茹 

来源:CSDN 

原文:https://blog.csdn.net/wangwenru6688/article/details/53442929 

2 回复 有任何疑惑可以回复我~

i++可以当做一个独立的语句

你看i=0;i《10;i++之间都有分号的


0 回复 有任何疑惑可以回复我~

我的意思是循环到9时i其实输出的是8呀,因为i++先输出后自加啊,那样就会导致越限了啊,但是为什么并没有啊

0 回复 有任何疑惑可以回复我~

数组的一个数是arr[0]

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么i++和++i效果一样啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信