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++也是正确的啊。
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自增的时候的值并没使用,而是给下一次循环用。
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
i++可以当做一个独立的语句
你看i=0;i《10;i++之间都有分号的
我的意思是循环到9时i其实输出的是8呀,因为i++先输出后自加啊,那样就会导致越限了啊,但是为什么并没有啊
数组的一个数是arr[0]
C语言入门
926207 学习 · 20797 问题
相似问题
回答 2
回答 3