数组的使用
初见数组
#include <stdio.h>
int main(void)
{
int a[5] = {
1, 2, 3, 4, 5};
//a为数组的名字也代表第一个元素a[0]的地址,5表示数组元素的个数
//五个元素为a[0],a[1],a[2],a[3],a[4]
int i;
for ( i=0; i<5; i++)
printf("%d\n", a[i]);
return 0;
}
a[i]表示第i+1个元素
为什么需要数组
为了解决大量同类型数据的存储和使用问题
为了模拟现实世界
int a[25] 直线,没有a[25]这个元素,最大只有a[24]
int a[8] [6] 平面(48个元素)
int a[3] [4] [5] 空间
图中代码cnt可能会大于100
定义数组
数组的单元
- 数组的每个单元就是数组类型的一个变量
- 使用数组是放在[]中的数字叫做下标或索引,下标从0开始计数
- grades[0]
- grades[99]
- average[5]
有效的下标范围
a[0]存在但是无用
数组的分类
一维数组、二维数组、多维数组
一维数组
怎样定义一维数组
为n个变量连续分配存储空间
所有的变量数据类型必须相同
所有的变量所占的字节大小必须相等
例:int a[5]
有关一维数组的操作
初始化
完全初始化 int a[5] = {1,2,3,4,5};
不完全初始化,未被初始化逇元素自动为0
int a[5] = {1,2,3};
不初始化,所有元素是垃圾值 int a[5];
清零 int a[5] = {0};
错误写法: int a[5];
a[5] = {1,2,3,4,5};
只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的
a数组赋值给b数组,必须采用遍历
int a[5] = {1,2,3,4,5};
int b[5];
for( i = 0; i<5; i++) {
b[i] = a[i]
}
遍历数组
int a[10]
赋值
#include <stdio.h>
int main(void)
{
int a[5];
int i;
scanf("%d", &a[0]);
printf("a[0]=%d\n", a[0]);
scanf("%d", &a[3]);
printf("a[3]=%d\n", a[3]);
for ( i=0; i<5; ++i) {
printf("%d ", a[i]);
}
return 0;