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

来源:6-2 数组的遍历

Catsye

2017-09-25 23:59

#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回答

  • phploger
    2017-09-27 18:03:46
    已采纳

     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自增的时候的值并没使用,而是给下一次循环用。

  • THEZERO
    2018-11-09 12:03:16

    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 

  • 慕粉004404296
    2017-11-29 14:47:21

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

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


  • Catsye
    2017-09-27 00:08:04

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

  • 慕雪4326430
    2017-09-26 10:25:07

    数组的一个数是arr[0]

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题