C语言程序设计一维数组的一个小问题
如果变量定义 int k, a[10];
为什么不能再写
for(k = 1; k <= 10; k++){
printf("%d ", a[k]);
}
是一定要从k=0开始循环吗?为什么?
int a[10]这里说明数组a只有10个元素,C语言数组下标从0开始,所以数组a最后一个元素是a[9],for循环中,当k=10的时候,a[10]越界了,所以是不对的
下面的代码是对的:
for(k = 1; k < 10; k++){ //这里去掉=以后是可以的,但是,只能显示9个元素,a[0]元素不会显示
printf("%d ", a[k]);
}
//或者
for(k = 0; k < 10; k++){ //这里去掉=,k从0开始,显示数组a的10个元素
printf("%d ", a[k]);
}
数组的下标是从0开始,
int a[10],共10个元素,下标分别是0,1,2,3,4,5,6,7,8,9
不存在a[10],这样数组就越界了。
不行啊。a[10]的最大下标是9,你输入a[10]会越界
数组a[10]的下标范围是0-9