C++一维数组

什么是数组

数组(array)是一个存储了固定大小,同类型元素的集合。也就是说,数组就是一个由多个同类型元素按顺序排列组成的一个集合。在程序执行的过程中我们经常会存储很多数据,这时候就需要使用到数组。比如存储100个学生的成绩,每个学生的成绩(假设都是整数)都是int类型的数值,这时候,把这些成绩放到一个int sorce[100]的数组中,就可以更加方便地查看或操作这些学生的成绩。

数组语法

声明数组

//声明数组
elementType arrayName[SIZE]
//elementType可以是任何类型的数据类型,所有的数组成员都是这个类型的
//SIZE是大小,必须是大于0的整数
//上面的int sorce[100]就是一个所有成员都是int类型,数组大小为100(有100个成员)的

初始化数组

//初始化数组
//1. SIZE和Value
elementType arrayName[SIZE] = {value1, value2, ..., valuen};
//2. 当有value时,可以省略SIZE,SIZE为value的个数n
elementType arrayName[] = {value1, value2, ..., valuen};

数组元素赋值

注意:数组的下标是从0开始的,也就是说array[0]是数组array中的第一个元素,下标最大为SIZE-1

//数组赋值
arrayName[index] = value;
//index是下标,最小为0,最大为SIZE-1

访问数组

//访问数组
arrayName[index];

处理数组

获取数组长度

sizeof(array)/sizeof(array[0]);
//sizeof()函数是所传参数在内存中占的大小
//sizeof(array[0])表示里面一个元素的大小,sizeof(array)表示整个数组的大小

用输入的值来初始化数组并输入

#include <iostream>

using namespace std;

int main()
{
    int sorce[10];

    for (int i = 0; i < sizeof(sorce)/sizeof(sorce[0]); i++) {
        cout << "请输入第" << i+1 << "个学生的成绩(共十个):" ;
        cin >> sorce[i];
    }

    for (int i = 0; i < sizeof(sorce)/sizeof(sorce[0]); i++) {
        cout << "" << i+1 << "个学生的成绩是:" << sorce[i] << endl;
    }
    return 0;
}

运行结果:

 

 

 复制数组

在C++中复制数组不能直接用=来操作(array1 = array2;),需要以循环的方式一个个元素复制

#include <iostream>

using namespace std;

const int SIZE = 5;

int main()
{
    int list[SIZE] = {1, 2, 3, 4, 5};

    int myList[SIZE];

    for (int i = 0; i < SIZE; i++) {
        myList[i] = list[i];
    }

    for (int i = 0; i < SIZE; i++) {
        cout << "myList的第" << i+1 << "个元素:" << myList[i] << endl;
    }
    return 0;
}

运行结果:

 

 

 求数组中所有元素之和

#include <iostream>

using namespace std;

const int SIZE = 5;

int main()
{
    int list[SIZE] = {1, 2, 3, 4, 5};

    int total = 0;

    for (int i = 0; i < SIZE; i++) {
        total += list[i];
    }

    cout << "list数组中所有元素之和为:" << total << endl;
    return 0;
}

运行结果:

 

 

 数组作为函数参数(按址传参)

#include <iostream>

using namespace std;

const int SIZE = 5;
//查看数组的第一个元素
void firstElement (int array[]) { cout << "The first element of array is " << array[0] << endl; } int main() { int list[SIZE] = {1, 2, 3, 4, 5}; firstElement(list); return 0; }

运行结果:

 

 数组作为函数返回值

在C++中,不允许出现以数组类型为返回值的函数

//下面的函数头是错误的,因为C++中不允许以数组为返回值
int[] funcation()

但是,我们可以在函数的形参中国添加一个数组来绕过这个限制。比如一个复制数组的函数:

#include <iostream>

using namespace std;

const int SIZE = 5;

void arrayCopy (int array1[], int array2[]) {
    for (int i = 0; i < SIZE; i++) {
        array2[i] = array1[i];
    }
}

int main()
{
    int list[SIZE] = {1, 2, 3, 4, 5};

    int myList[SIZE];

    arrayCopy(list, myList);

    for (int i = 0; i < SIZE; i++) {
        cout << "myList的第" << i+1 << "个元素:" << myList[i] << endl;
    }
    return 0;
}

运行结果:

 

posted @ 2020-04-07 19:00  川尘  阅读(2030)  评论(0编辑  收藏  举报
`