• 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;
    }

    运行结果:

  • 相关阅读:
    OpenCV在MFC图像控件内显示图像
    Android APK反编译具体解释(附图)
    Android下用Properties保存程序配置
    王灏:光音网络致力打造Wi-Fi大生态圈
    解决ccSvcHst.exe CPU占用超50%的问题,及其缘由
    配置管理工具比較
    应用程序无法正常启动0xc0150002 解决方式
    现有一些开源ESB总线的比較
    使用GridView自带分页的代码
    Hadoop 2.4.0新特性介绍
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12641935.html
Copyright © 2020-2023  润新知