c语言中的数组问题
为什么是 i <cnt 而不是 i<=cnt呢?
请讲通俗一点,因为刚刚开始学数组,谢谢你们的解答!
如果你的i是0,条件给的<n,然后i++代表循环n次,如果加上等于就是n+1次,你可以把i=1然后再小于等于n,这样就是n次了。
因为数组是从零开始计数的,比如你定义a[5],那么数组a最大只能到a[4],最小是a[0],是取不到a[5]的,如果等于了5,数组就会出现溢出错误
因为你数组中存放的元素数量是cnt,正常的计数是从1开始计数,(1,2,3,4,5)这是五个数,但是数组下标是从0开始计数,(0,1,2,3,4)这是五个数,你定义一个
int cnt = 5;
int arry[cnt] = { 1, 2, 3, 4, 5 };
//它里面就五个元素,你不可能从里面取出6个。而下标严格定义从0开始,此时你再看从0开始计数的五个数(0,1,2,3,4)它们就是数组下标。
//你的数组长度有5,下标最大到4,所以你不可能访问到5,因为你的数组没有第六个元素。
//你只要记住你要访问第几项,你的下标就是第几项减1就好。
for (int i = 0; i < cnt; i++) {
printf ("%d ", arry[i]);
}