数组索引是什么
数组索引是访问数组中元素的位置编号。大多数编程语言中,数组从0开始计数,也就是说第一个元素的索引是0,第二个是1,依此类推。比如你有一排快递柜,每个柜子都有编号,你要取哪个包裹,就得按编号打开对应的柜门,数组索引就相当于这个编号。
怎么用数组索引取值
假设你在写一个天气预报的小程序,把一周的气温存进数组里:
int temperatures[] = {23, 25, 24, 28, 30, 29, 27};想查看第三天的温度,就用索引2(因为从0开始):
printf("第三天气温:%d度", temperatures[2]);输出结果就是24度。这里的关键是别把索引搞错,很多人习惯从1开始数,但在代码里得减1才是正确的索引。
修改数组中的值
索引不仅能读数据,还能改数据。比如发现第四天气温记录错了,实际是31度,可以直接通过索引更新:
temperatures[3] = 31;这样一来,原来28度就变成了31度,下次读取时就是新值了。
越界问题要小心
如果索引超出了数组范围,比如有7个元素却访问索引7或更高,就会出现越界。这就像拿着8号钥匙去开只有7个柜子的快递箱,系统可能报错甚至崩溃。
printf("%d", temperatures[10]); // 危险操作,可能出错不同语言处理方式不一样,C语言不会自动检查,容易引发严重问题;Python这类语言会在运行时报错提醒。
遍历数组常用索引
批量处理数据时,经常配合循环使用索引。例如打印一周所有气温:
for (int i = 0; i < 7; i++) {
printf("第%d天: %d度\n", i+1, temperatures[i]);
}这里的变量i作为动态索引,每次循环自动加1,依次取出每个位置的数据。
字符串也可以看作字符数组
字符串本质上是字符组成的数组,同样支持索引操作。比如判断用户名第一个字母是不是大写:
char name[] = "Alice";
if (name[0] >= 'A' && name[0] <= 'Z') {
printf("首字母大写\n");
}这段代码检查索引0位置的字符是否在A到Z之间,符合条件就说明是大写。
多维数组的索引写法
如果是表格类数据,比如记录三周每天的气温,可以用二维数组:
int temps[3][7]; // 3周,每周7天访问第二周的第五天,就要两个索引:
temps[1][4] = 26; // 第二周(索引1),第五天(索引4)设为26度第一个方括号是行号,第二个是列号,就像坐标一样定位具体位置。