Skip to content
On this page

数组

引言

如果你需要写一个程序记录3个人的成绩

cpp
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
1
2

那如果你需要记录1000个人的成绩呢?就不能用定义一个一个变量的方式了,要使用数组

cpp
int a[1000];
for(int i = 0; i<= 999 ;i++)
    scanf("%d",&a[i]);
1
2
3

1. 什么是数组?

数组:一组数字

2. 如何定义数组 数组类型 数组名[数组大小]

cpp
// 1. 直接定义一个数组,名字叫a,有100个元素
int a[100];             

// 2.定义时直接初始化,有3个元素,3个元素分别为 1 2 3
int abc[3] = {1,2,3};   

// 3.部分初始化 其中第一个元素为10 其它元素为0
int d[3] = {10};   

// 3. 不直接指定数组的大小,数组的大小由初始化列表的元素个数来决定
// foo大小为5
int foo[]  = {1,2,3,4,5}; 

// 4 定义了一个char数组
char bar[] = {'a','1','2'};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

3. 数组定义后如何使用

  • 数组的下标从0开始,如
    • int a[3]有三个元素,分别是a[0],a[1],a[2]
  • 使用下标访问数组里的一个元素,就像普通的变量一样
    cpp
    int a[3];        //定义
    scanf("%d",&a[1]);     //输入
    a[0] = 1;        //赋值
    a[0] = a[1] + a[2]; //运算
    
    1
    2
    3
    4
cpp
#include <iostream>
using namespace std;

int main(){
    int a[5];
    for(int i=0;i<=4;++i){ //由键盘输入5个数字
        scanf("%d",&a[i]); // 存到数组里
    }

    printf("array is : ");
    for(int i=0;i<=4;++i){ 
        printf("%d ",a[i]); //输出每个元素并空一格
    }

    return 0;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

4. 一个小题目 : 猴子选大王

TODO

5. 总结与注意事项

  • 定义数组时,必须知道数组的确定大小,也就是说要用常量表达式,int a[常量表达式]
    • int n;int a[n]; 错,因为n是变量
  • 定义数组里可以直接初始化int a[3] = {1,2,3}
  • 定义数组里可以通过初始化来指明数组大小int a[] = {1,2,3}
  • 数组的下标从0开始,int a[3],共3个元素,第一个a[0],最后一个a[2]
  • 通过数组的下标来访问元素