C++数组

2023-10-29

C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

一维数组
一维数组定义的三种方式:
1. ` 数据类型  数组名[ 数组长度 ]; `
2. `数据类型  数组名[ 数组长度 ] = { 值1,值2 ...};`
3. `数据类型  数组名[ ] = { 值1,值2 ...};`
1.int socre[10]
2.int socre[10] = {1,2,3,4,5,6,7,8,9,0}
3.int socre[] = {1,2,3,4,5,6,7,8,9,0}
总结1:数组名的命名规范与变量名命名规范一致,不要和变量重名
总结2:数组中下标是从0开始索引
一维数组数组名的作用:
1. 可以统计整个数组在内存中的长度
2. 可以获取数组在内存中的首地址
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 << "数组首地址为: " << (int)arr << endl;
    cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
    cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;

    //arr = 100; 错误,数组名是常量,因此不可以赋值


    system("pause");

    return 0;
}
注意:数组名是常量,不可以赋值
总结1:直接打印数组名,可以查看数组所占内存的首地址
总结2:对数组名进行sizeof,可以获取整个数组占内存空间的大小
二维数组
二维数组就是在一维数组上,多加一个维度。
二维数组定义的四种方式:
1. ` 数据类型  数组名[ 行数 ][ 列数 ]; `
2. `数据类型  数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };`
3. `数据类型  数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};`
4. ` 数据类型  数组名[  ][ 列数 ] = { 数据1,数据2,数据3,数据4};`
//方式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;
//方式2
    //数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };
    int arr2[2][3] =
    {
        {1,2,3},
        {4,5,6}
    };
//方式3
    //数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4  };
    int arr3[2][3] = { 1,2,3,4,5,6 };
//方式4
    //数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4  };
    int arr4[][3] = { 1,2,3,4,5,6 };
//总结:在定义二维数组时,如果初始化了数据,可以省略行数
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;
}
//总结1:二维数组名就是这个数组的首地址

//总结2:对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小

多维数组

多维数组的格式:
type name[size1][size2]...[sizeN];
//例如三维数组:

int threedim[5][10][4];

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++数组 的相关文章

随机推荐

  • rsync下行同步+inotify实时同步部署

    目录 rsync简介 rsync同步方式 rsync特性 rsync与cp scp对比 rsync同类服务 rsync源服务器的关系 配置rsync源 rsync命令 rsync本地复制实例 配置源的两种表达方式 Rsync 同步源 配置r
  • Redis高级客户端Lettuce详解

    前提 Lettuce是一个Redis的Java驱动包 初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码 发现spring data redis的驱动包在某个版本之后替换为Lettuce Lettuce翻
  • AttGAN

    AttGAN Facial Attribute Editing by Only Changing What You Want 摘要 本文和以往不同之处是attribute classification constraint 用来保证在生成网
  • Intellij idea软件项目名后面跟了中括号

    问题展示 有时候我们的项目在项目名称或者模块名后面会跟着一个 XXX 如下图 问题分析 出现这种情况 是因为创建项目时 名称为A artifactId为B 就会造成这种结果 文件夹名字是A iml文件名是B iml文件是项目标识文件 记录了
  • Nginx:如何配置HTTPS加密通信?

    作者 禅与计算机程序设计艺术 1 简介 1 1 引言 HTTPS HyperText Transfer Protocol Secure 是一种通过Internet进行安全传输的协议 它经由SSL TLS加密技术保护用户数据在 interne
  • ubuntu22.04使用时遇到的问题

    应用软件 网易云音乐无法打开 sudo gedit opt netease netease cloud music netease cloud music bash 将内容改成下面这样 bin sh HERE dirname readlin
  • springboot shardingsphere druid 动态数据源切换及分库分表

    引入依赖
  • opencv图像金字塔的介绍

    1 学习目标 掌握opencv图像金字塔的原理 学习内容 1 什么是图像金字塔 2 图像金字塔有什么用 3 图像金字塔实现方式 学习产出 1 什么是图像金字塔 图像金字塔 如图 1 所示 是一种以多分辨率来解释图像的结构 通过对原始图像进行
  • spring cloud eureka server界面自定义

    spring cloud eureka server注册中心的界面不太好看 想自定义 经查看源码发现 源码位于spring cloud netflix eureka server servers的首页由template eureka目录下的
  • 各版本Pytorch安装详解

    Pytorch安装教程 windows版本 conda安装 1 cuda9 0 python3 6 3 5 3 7 conda install pytorch c pytorch pip3 install torchvision 2 cud
  • Win10、Win11打开远程桌面连接方法

    目录 一 打开网络发现 二 打开远程桌面连接 一 打开网络发现 二 打开远程桌面连接 1 打开此电脑 右击 属性 2 相关链接处点解高级系统设置 3 远程协助和远程桌面处 均勾选允许远程协助连接这台计算机 4 点击选择用户 查看或添加远程用
  • flutter 权限和图片权限之前的冲突

    权限插件 permission handler 9 2 0 想调起相册和视频 这个插件只有Permission storage request 获取存储权限 问题是android 13的一些手机 系统设置没有存储权限 用了上面这个权限 三次
  • 三种常见加密算法MD5、对称加密,非对称加密

    1 MD5加密html MD5加密的特色 前端 不可逆运算python 对不一样的数据加密的结果是定长的32位字符 无论文件多大都同样 算法 对相同的数据加密 获得的结果是同样的 也就是复制 后端 抗修改性 信息 指纹 对原数据进行任何改动
  • 扫频的matlab及FPGA实现

    扫频原理 已知扫频表达式 s t e x p
  • Linux文件I/O实验报告

    实验代码下载地址 https download csdn net download Qingyuyuehua 16305028 任务1 在当前用户目录下创建数据文件student txt 文件的内部信息存储格式为Sname S Sdept
  • sqli-lab教程——Less-8 GET - Blind - Boolian Based - Single Quotes (布尔型单引号GET盲注)

    题目名字暴露一切 本来不想看的 又瞥到了 布尔型盲注 单引号 id 1回显 价格单引号不回显 构造一下验证是不是布尔型payload id 1 and 1 1 回显了 证明没跑了 那就一步一步来吧 和less5一样的 根据回显判断 可以通过
  • clion三角形运行键是灰的_能打游戏能编程,如何用吃灰机器,安装完整ChromeOS(支持安卓)...

    常看IT新闻的人 一定听说过基于Chrome浏览器的系统ChromeOS 作为云系统的先行者 它的优点非常多 1 轻量 系统简单 资源占用少 低配硬件也能流畅运行 2 现代 界面风格统一 触摸手势好用 手感不输MacOS 3 同步 扩展程序
  • windows启动Docker失败提示:waiting for docker daemon: context deadline exceeded

    报错提示如下图 解决方法 以管理员方式打开CMD 运行netsh winsock reset 后 重启电脑之后再次启动Docker就可以了 如果还是没有效果可以尝试以下解决方法 检查Docker服务是否已启动 在命令行中输入 service
  • 完美解决eclipse中文注释错位、缩进、被放大BUG

    完美解决eclipse中文注释错位 缩进 被放大BUG 1 常规操作 2 另辟蹊径 2 1 基本思路 字体融合法 2 2 操作步骤 2 2 1 软件准备 2 2 2 文件准备 2 2 3详细步骤 3 写在最后 1 常规操作 这个BUG有大量
  • C++数组

    C 支持数组数据结构 它可以存储一个固定大小的相同类型元素的顺序集合 数组是用来存储一系列数据 但它往往被认为是一系列相同类型的变量 一维数组 一维数组定义的三种方式 1 数据类型 数组名 数组长度 2 数据类型 数组名 数组长度 值1 值