C++数组

目录

一、数组

概述

二、一维数组

2.1 一维数组的定义方式

2.2 一维数组的数组名

三、  二维数组

3.1 二维数组定义方式

3.2 二维数组数组名


一、数组

概述

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

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

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

二、一维数组

2.1 一维数组的定义方式

一维数组定义的三种方式

  1. 数据类型    数组名   [  数组长度  ];
  2. 数据类型    数组名   [  数组长度  ]  =  {  值1,  值2  …};
  3. 数据类型    数组名   [   ]  =  {值1,值2 ….};

示例

#include<stdio.h>

#include<iostream>

using namespace std;

int main ()

{

    // 创建数组的第一种方式

    int arr[5];

    for(int i=0;i<5;i++){

        arr[i]=i+1;

    }

    for(int i=0;i<5;i++){

        cout<<arr[i]<<" ";

    }

    cout<<endl;



    // 创建数组的第二种方式

    int arr2[5]={10,20,30,40,50};

    for(int i=0;i<5;i++){

        cout<<arr2[i]<<" ";

    }

    cout<<endl;



    // 创建数组的第三种方式

    int arr3[]={1,12,13,15,18,14,45};

    for(int i=0;i<sizeof(arr3)/sizeof(arr3[0]);i++){

        cout<<arr3[i]<<" ";

    }

    cout<<endl;

return 0;

}

运行结果:

2.2 一维数组的数组名

一维数组名称的用途

  1. 可以统计整个数组在内存中的长度
  2. 可以获取数组在内存中的首地址

示例:

#include<stdio.h>

#include<iostream>

using namespace std;

int main ()

{

    // 1. 可以通过数组名统计整个数组占用内存大小

    int arr[10]={1,2,3,4,5,6,7,8,9,10};

    cout<<"整个数组占用内存空间为:"<<sizeof(arr)<<endl;

    cout<<"每个元素占用内存空间为:"<<sizeof(arr[0])<<endl;

    cout<<"数组长度为:"<<sizeof(arr)/sizeof(arr[0])<<endl;



    // 2.可以通过数组名查看数组首地址

    cout<<"数组首地址为:"<<arr<<endl;

    cout<<"第一个元素的首地址:"<<&arr[0]<<endl;

    cout<<"第二个元素的首地址:"<<&arr[1]<<endl;



    // 注意事项

    // 数组名是常量,不可以进行赋值操作



    return 0;

}



运行结果:

三、  二维数组

二维数组就是在一维的基础上,多加一个维度

3.1 二维数组定义方式

二维数组定义的四种方式:

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

建议:以上四种方式,利用第二种方式更加直观,提高代码的可读性

示例:

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

    // 建立二维数组的四种方式

    // 数据类型   数组名  [ 行数 ][ 列数 ];

    int arr[2][3];

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cin>>arr[i][j];

        }

    }

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cout<<arr[i][j]<<" ";

        }

        cout<<endl;

    }



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

    int arr1[2][3]=

    {

        {1,2,3},

        {4,5,6}

    };

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cout<<arr1[i][j]<<" ";

        }

        cout<<endl;

    }



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

    int arr2[2][3]={1,2,3,4,5,6};

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cout<<arr1[i][j]<<" ";

        }

        cout<<endl;

    }



    // 数据类型   数组名  [  ][ 列数 ]  =  { 数据1,数据2,数据3,数据4 };
    
    // 先写列,可以推断出行数

    int arr[3]=[][3]={1,2,3,4,5,6};

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cout<<arr1[i][j]<<" ";

        }

        cout<<endl;

    }

    return 0;

}

运行结果:

3.2 二维数组数组名

  • 查看二维数组所占内存空间
  • 获取二维数组首地址

示例:

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

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

    int arr1[2][3]=

    {

        {1,2,3},

        {4,5,6}

    };

    cout<<"二维数组占用内存空间为:"<<sizeof(arr1)<<endl;

    cout<<"二维数组第一行占用内存为:"<<sizeof(arr1[0])<<endl;

    cout<<"二维数组第一个元素占用内存为:"<<sizeof(arr1[0][0])<<endl;



    cout<<"二维数组行数为:"<<sizeof(arr1)/sizeof(arr1[0])<<endl;

    cout<<"二维数组列数为:"<<sizeof(arr1[0])/sizeof(arr1[0][0])<<endl;

    for(int i=0;i<2;i++){

        for(int j=0;j<3;j++){

            cout<<arr1[i][j]<<" ";

        }

        cout<<endl;

    }



    cout<<endl<<endl<<endl;

    // 可以查看二维数组的首地址

    int arr[2][3]={11,12,13,14,15,16};

    cout<<"二维数组的首地址为:"<<arr<<endl;

    cout<<"二维数组第一行首地址:"<<arr[0]<<endl;

    cout<<"二维数组第二行首地址:"<<arr[1]<<endl;

    cout<<"二维数组第一个元素的首地址:"<<&arr[0][0]<<endl;

    cout<<"二维数组第二个元素的首地址:"<<&arr[0][1]<<endl;

    return 0;

}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值