Skip to content
本页目录

9 二维数组

发布时间:

  • 二维数组组定义
    就是在一维数组上,多加一个维度

二维数组定义方式. 二维数组定义的四种方式:
1.数据类型 数组名[行数][列数];
2.数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数居4}};
3. 数据类型 数组名[行数][列数] ={数据1,数据2,数据3,数据4};
4. 数据类型 数组名[ ][列数]={数据1,数据2,数据3,数据4};
建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性
示例:

js
#include <iostream>
using namespace std;
int main()
{
    // 方式1
    // 数组类型 数组名[行数了[列数]
    int arr[2][3];
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[0][2] = 3;
    arr[1][0] = 4;
    arr[1][1] = 5;
    arr[1][2] = 6;

    for (int i = 0; i < 2; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    // 方式2
    // 数据类型 数组名[行数了[列数〕二{{数据1,数据2},{数据了,数据4了了;
    int arr2[2][3] =
        {{1, 2, 3},
         {4, 5, 6}};

    // 方式3
    // 数据类型 数组名【行数了[列数〕二{ 数据1,数据2,数据了,数据4 了;
    int arr3[2][3] = {1, 2, 3, 4, 5, 6};
    
    // 方式4
    // 数据类型 数组名[][列数〕二{数据1,数据2,数据了,数据4 };
    int arr4[][3] = {1, 2, 3, 4, 5, 6};

    return 0;
}
   
  • 查看二维数组所占内存空间
  • 获取二维数组首地址
    示例:
js
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;
    cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;
    cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
    // 地址
    cout << "二维数组首地址:" << arr << endl;
    cout << "二维数组第一行地址:" << arr[0] << endl;
    cout << "二维数组第二行地址:" << arr[1] << endl;
    cout << "二维数组第一个元表地址:" << &arr[0][0] << endl;
    cout << "二维数组第二个元素地址:" << &arr[0][1] << endl;
    system("pause");
    return 0;
}
   

memset

memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。 void *memset(void *s, int c, size_t n); s指向要填充的内存块。 c是要被设置的值。 n是要被设置该值的字符数。 返回类型是一个指向存储区s的指针。

考试成绩統计: 案例描述:有三名同学(张三,李四,王五),在一次考试中的成绩分别如巨表,请分别输出三名同学的总成績

语文数学英语
张三100100100
李四9050100
王五607080
js
#include <iostream>
using namespace std;

int main()
{
    // 创建二维数组
    int scores[3][3] =
        {
            {100, 100, 100},
            {90, 50, 100},
            {60, 70, 80}};
    string names[3] = {"张三", "四", "王五"};
    // 统计每个人的总分
    for(int i = 0;i < 3;i++)
    {
        int sum = 0;
        for (int j = 0; j < 3; j++)
        {
            sum+=scores[i][j];
        }
        cout<< "第" <<i+1<<"个人的总分是"  << sum<<endl;
    }
}