千家信息网

C++中的数组怎么使用

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍"C++中的数组怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++中的数组怎么使用"文章能帮助大家解决问题。1 概述所谓数组,就是一
千家信息网最后更新 2025年01月22日C++中的数组怎么使用

这篇文章主要介绍"C++中的数组怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++中的数组怎么使用"文章能帮助大家解决问题。

    1 概述

    所谓数组,就是一个集合,里面存放了相同类型的数据元素。

    特点1:数组中的每个数据元素都是相同的数据类型。

    特点2:数组是由连续的内存位置组成的。

    2 一维数组

    2.1 一维数组定义方式

    一共有三种

    1.数据类型 数组名[数组长度];2.数据类型 数组名[数组长度]={值1,值2,值3,...};3.数据类型 数组名[]={值1,值2,值3,...};
    #includeusing namespace std;int main(){               //第一种定义数组        int arr[5] ;        memset(arr, 0, sizeof(arr));//初始化为0,否则为随机数        arr[0] = 10;        arr[1] = 10;        arr[2] = 10;        arr[3] = 10;        arr[4] = 10;        //访问数组        for (int i = 0; i < 5; i++)         {                cout << arr[i] << " ";        }        cout << endl;        //第二种定义数组        //如果在初始化的时候没有填充完,剩余的会用0来填充。        int brr[5] = { 20,20,20,20 };        for (int i = 0; i < 5; i++)        {                cout << brr[i] << " ";        }        cout << endl;        //第三种定义数组        char crr[] = { '3','3','3','3','c'};        for (int i = 0; i < 5; i++)        {                cout << crr[i] << " ";        }        system("pause");        return 0;}
    • 第一种方法是先声明再定义,对于全局/静态数组(定义在main()之外的数组),数组内容自动初始化为0。如果是局部的,此时数组的各元素是随机数,这时可以用 memset(arr, 0, sizeof(arr)); 使所有元素初始化为0;

    • 第二种方法是在定义的时候直接初始化,这时如果在初始化的时候没有填充完,剩余的会用0来填充。

    • 第三种方法在定义的时候不指定长度,这时会默认数组长度是你所赋的值的数量。

    如果引用的索引超出了数组长度,也可以输出,输出结果是随机数(int型数组)/ 问号(char型)。

    2.2 一维数组组名

    一维数组组名用途:

    • 可以统计整个数组在内存中的长度。

    • 可以获取数组在内存中的首地址。

    注意:数组名是常量,不可以像更改数组元素那样更改数组名

    #includeusing namespace std;int main(){        //1.统计内存        int arr[5] = { 1,2,3,4,5 };        cout << "整个数组占用内存空间为:" << sizeof(arr) << endl;        cout << "每个元素占用内存空间为:" << sizeof(arr[0]) << endl; //元素内存相同,所以只看一个就可以了。        //2.查看数组首地址        cout << "数组的首地址为(十六进制):" << arr << endl;        cout << "数组的首地址为(十进制):" << (int)arr << endl;        cout << "数组的第一个元素地址为(十进制):" << (int)&arr[0] << endl;        cout << "数组的第二个元素地址为(十进制):" << (int)&arr[1] << endl;        //会发现差4个字节,就是一个整型数组的内存大小。        //3.数组名是常量,不可以想更改数组元素那样更改数组名        //arr=crr        system("pause");        return 0;}

    练习案例1

    #includeusing namespace std;int main(){        int arr[5] = { 300,350,200,400,250 };        int size = sizeof(arr) / sizeof(arr[0]);        int max = 0;        for (int i = 0; i < size; i++)        {                if (arr[i] > max) { max = arr[i];}        }        cout << "最重的小猪体重为:" << max << endl;        system("pause");        return 0;}

    练习案例2

    #includeusing namespace std;int main(){        int arr[5] = { 1,3,5,9,4 };        int size = sizeof(arr) / sizeof(arr[0]);        int start = 0;        int end = size - 1;        int temp = 0;        //打印逆置前的数组        cout << "数组逆置前:" << endl;        for (int i = 0; i < size; i++)        {                cout << arr[i] << " ";        }        //逆置        while (start < end)        {                temp = arr[start];                arr[start] = arr[end];                arr[end] = temp;                start++;                end--;        }        //打印逆置后的数组        cout << "数组逆置后:" << endl;        for (int i = 0; i < size; i++)        {                cout << arr[i] << " ";        }        system("pause");        return 0;}

    2.3 冒泡排序

    作用:最常用的排序算法,对数组内元素进行排序。

    方法

    • 比较相邻的元素。如果第一个比第二 个大, 就交换他们两个。

    • 对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。

    • 重复以上的步骤,每次比较次数-1,直到不需要比较

    例如:排序{4,2,8,0,5,7,1,3,9}

    #includeusing namespace std;int main(){        int arr[] = { 4,8,0,5,7,1,3,0};        int size = sizeof(arr) / sizeof(arr[0]);        //打印排序前的数组        cout << "数组排序前:" << endl;        for (int i = 0; i < size; i++)        {                cout << arr[i] << " ";        }        cout << endl;        //冒泡排序        for (int i = 0; i < size-1; i++)  //从0开始,共有size-1轮        {                for (int j = 0; j + i < size  - 1; j++) //每轮的比较次数与当前轮数相加小于size-1                {                        if (arr[j] > arr[j + 1])                         {                                int temp = arr[j];                                arr[j] = arr[j+1];                                arr[j + 1] = temp;                        }                }        }        cout << "数组排序后:" << endl;        for (int i = 0; i < size; i++)        {                cout << arr[i] << " ";        }        cout << endl;        system("pause");        return 0;}

    3 二维数组

    二维数组就是在一维数组上,多加一个维度。

    3.1 二维数组定义方式

    1.数据类型 数组名[行数][列数];2.数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};3.数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};4.数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};

    一般都是使用第二种,因为第二种最直观,提高代码的可读性。

    #includeusing namespace std;int main(){               //1.数据类型 数组名[行数][列数];        //2.数据类型 数组名[行数][列数] = { {数据1,数据2},{数据3,数据4} };        //3.数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };        //4.数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };        //1.        int arr[2][3];        arr[0][0] = 0;        arr[0][1] = 1;        arr[0][2] = 2;        arr[1][0] = 3;        arr[1][1] = 4;        arr[1][2] = 5;        for (int i = 0; i < 2; i++)         {                for (int j = 0; j < 3; j++)                 {                        cout << arr[i][j] << "\t";                }                cout << endl;        }        cout << endl;        //2.        int brr[2][3] =        {                 {1,2,3},            {4,5,6}        };        for (int i = 0; i < 2; i++)        {                for (int j = 0; j < 3; j++)                {                        cout << brr[i][j] << "\t";                }                cout << endl;        }        cout << endl;        //3.        int crr[2][3] = { 1,2,3,4,5,6 };        for (int i = 0; i < 2; i++)        {                for (int j = 0; j < 3; j++)                {                        cout << crr[i][j] << "\t";                }                cout << endl;        }        cout << endl;        //4.        int drr[][3] = { 1,2,3,4,5,6 };        for (int i = 0; i < 2; i++)        {                for (int j = 0; j < 3; j++)                {                        cout << drr[i][j] << "\t";                }                cout << endl;        }        system("pause");        return 0;}

    3.2 二维数组数组名

    查看二维数组所占内存空间或者某行占用内存空间

    #includeusing namespace std;int main(){        int arr[2][3] =        {                {1,2,3},                {4,5,6}        };        cout << "二维数组占用内存为:" << sizeof(arr) << endl;        cout << "某一行占用内存为:" << sizeof(arr[0]) << endl;        cout << "一个元素占用内存为:" << sizeof(arr[0][0]) << endl;        int row = sizeof(arr) / sizeof(arr[0]);        int column = sizeof(arr[0]) / sizeof(arr[0][0]);        cout << "数组的行数为:" << row << "\n" << "数组的列数为:" << column << endl;        cout << "二维数组的首地址是(16进制):" << arr << endl;        cout << "二维数组的首地址是(10进制):" << (int)arr << endl;        cout << "第一行首地址是(10进制):" << (int)arr[0] << endl;        cout << "第二行首地址是(10进制):" << (int)arr[1] << endl;        //会发现第一行和第二行差12,正好三个整型元素        cout << "第二行第一个元素地址是(10进制):" << (int)&arr[1][0] << endl;//直接使用arr[1][0]是查看这个元素内容,需要用&取地址。        system("pause");        return 0;}

    3.3二维数组应用举例

    #includeusing namespace std;//vs快捷键crtl+d可以直接把本行复制到下行int main(){        int arr[3][3] =        {                {100,100,100},                {90 ,50 ,100},                {60, 70 ,80 }        };        cout << "成绩情况为:" << endl;        for (int i = 0; i < 3; i++)         {                for (int j = 0; j < 3; j++)                 {                        cout << arr[i][j] << " ";                }                cout << endl;        }        string names[3] = { "张三","李四","王五" };        for (int i = 0; i < 3; i++)        {                int sum = 0;                for (int j = 0; j < 3; j++)                {                        sum += arr[i][j];                }                cout << names[i] << "的总成绩为:" << sum << endl;        }        system("pause");        return 0;}

    关于"C++中的数组怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

    数组 数据 元素 内存 类型 地址 二维 排序 长度 j++ 方法 进制 一维 时候 空间 C++ 相同 一行 内容 十进制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 腾讯云服务器可以存多少视频 数据机房中eu服务器 卓航网络技术服务有限公司 lsql2005不能连接服务器 三级数据库100题 上海设备保养管理软件开发平台 佛山服务器防御 邢台网络安全技能竞赛 服务器在不使用的时候关闭可以吗 云服务器的流量包是什么 老板如何管理公司服务器 南通系统软件开发服务 三级数据库技术题库手机版 家庭教育与网络安全的读后感 网络安全法条款规定 建设 服务器关机还能连接网络吗 我的世界服务器怎么取消标签 远程连接本机数据库 amd 三代 服务器 纳米 mysq数据库的数据来源 龙源数据库论文检索不出单位 天谕哪个服务器人最多 搭建ltc加密中转服务器 武汉吉云智慧网络技术有限公司 用map遍历数据库表 网络安全信息领导小组职责 响应网站对服务器有要求吗 特斯拉服务器安全吗 11张网络安全思维导图 软件开发设计验收内容
    0