C语言学习笔记 - 数组篇
大家好,今天我们来回顾一下C语言中的数组部分。数组可以看作是相同数据类型的元素排成一队构成的序列。简单来说,就是一堆元素整整齐齐地在内存里按顺序存放。
数组的特点
数组最重要的特点就是每个元素都有一个下标,也就是索引。这个下标是从0开始的,一直到n-1,其中n是数组的元素个数。
为什么从0开始?
这个下标实际上是一个偏移量,它代表了元素在数组中的地址偏移量。因为内存中的数据是按字节存放的,每个字节都有一个地址,相当于一个编号。所以,我们可以通过数组的起始地址加上偏移量快速找到元素。
数组的定义
定义数组时,前面是数据类型,后面是数组的名称和长度。例如:
c
int a[5];
这里a是一个包含5个整数的数组。注意,数组的长度在C语言中是不可变的。
数组的访问
访问数组元素时,我们使用下标:
c
a[0], a[1], ..., a[n-1]
如果访问超出范围的元素,比如a[5],就会发生数组越界,这是非常危险的。
遍历数组
遍历数组通常使用for循环,因为数组的下标从0开始,非常适合用循环遍历。
字符数组和字符串
字符数组在C语言中通常用来表示字符串。字符串的末尾必须有一个'\0'字符来表示结束。
多维数组
多维数组本质上是数组的数组。例如,二维数组可以看作是数组的数组,每个元素本身也是一个数组。
练习题
输入五个成绩保存到数组并输出
c
#include <stdio.h>
int main() {
double scores[5];
for (int i = 0; i < 5; i++) {
scanf("%lf", &scores[i]);
}
for (int i = 0; i < 5; i++) {
printf("%lf ", scores[i]);
}
return 0;
}
计算六只鸡的总体重和平均体重
c
#include <stdio.h>
int main() {
double weights[6] = {10, 12, 15, 20, 18, 22};
double sum = 0;
for (int i = 0; i < 6; i++) {
sum += weights[i];
}
printf("总体重: %lf\n", sum);
printf("平均体重: %lf\n", sum / 6);
return 0;
}
访问26个英文字母
c
#include <stdio.h>
int main() {
char letters[26];
for (int i = 0; i < 26; i++) {
letters[i] = 'A' + i;
}
for (int i = 0; i < 26; i++) {
printf("%c ", letters[i]);
}
return 0;
}
求数组的最小值及对应的索引
c
#include <stdio.h>
int main() {
int arr[] = {10, 23, 5, 4, 7, 8, 9};
int min = arr[0], index = 0;
for (int i = 1; i < sizeof(arr) / sizeof(arr[0]); i++) {
if (arr[i] < min) {
min = arr[i];
index = i;
}
}
printf("最小值: %d, 索引: %d\n", min, index);
return 0;
}
这就是我们今天的内容,希望大家能够有所收获。如果有任何问题,欢迎随时提问。