为什么需要数组
在编程的有些场景中我们可能需要使用多个同类型变量。这时候,使用数组更方便。
如,需要5个double变量保存5个同学的成绩,并计算平均成绩,不使用数组时:
#include <stdio.h>
int main(int argc, char* argv[])
{
double score1 = 89.8;
double score2 = 59;
double score3 = 85;
double score4 = 70;
double score5 = 95.5;
printf("平均分:%f\r\n", (score1 + score2 + score3 + score4 + score5) / 5);
return 0;
}
使用数组时:
#include <stdio.h>
int main(int argc, char* argv[])
{
double dbScoreAry[5] = {89.8, 59, 85, 70, 95.5};
double dbAverage = 0;
for (int i = 0; i < 5; i++)
{
dbAverage += dbScoreAry[i];
}
printf("平均分:%f\r\n", dbAverage / 5);
return 0;
}
数组的定义
数组定义的基本语法是:
类型 数组名[数组大小];
如:
double dbScoreAry[5];
注意:根据C89标准,定义时数组的大小必须为常数。
数组的初始化
在数组定义的同时,可以批量初始化:
double dbScoreAry[5] = {89.8, 59, 85, 70, 95.5};
数组的引用与赋值
数组一旦定义,我们之后就可以通过数组名与下标去引用数组中的某一个元素,基本语法是:
数组名[数组下标]
注意,数组下标是从第0号(而不是1)开始的。
#include <stdio.h>
int main(int argc, char* argv[])
{
double dbScoreAry[5] = {89.8, 59, 85, 70, 95.5};
printf("%f\r\n", dbScoreAry[2]);
printf("%f\r\n", dbScoreAry[4]);
return 0;
}
数组的特点
- 数组名是数组在内存中的首地址
- 数组中的所有元素都是连续排放的
#include <stdio.h>
int main(int argc, char* argv[])
{
double dbScoreAry[5] = { 89.8, 59, 85, 70, 95.5 };
printf("%f\r\n", dbScoreAry[2]);
printf("%f\r\n", dbScoreAry[4]);
printf("%08X\r\n", dbScoreAry);//不需要&符号,地址
printf("%08X\r\n", &dbScoreAry[0]);//不需要&符号,地址
printf("%08X\r\n", &dbScoreAry[2]);//不需要&符号,地址
return 0;
}