二维数组和二维数组名

  对于一位数组我们认识到其数据元素在内存中是按线性顺序依次排列的,且一维数组名的值是一个指针常量。那么二维数组在内存中又是怎么存储的,其数组名又有什么含义呢?
  定义一个二维数组:

int Arr   [3] [4] = {{1,1,1,1},{2,2,2,2},{3,3,3,3},{4,4,4,4}};

  我们可以将一个二维数组看做是一个其中元素为数组的一个一位数组,也就是说二维数组第一维的元素实际上是另一个数组。所以数组名arr是一个指向一个包含有4个整形元素的数组的指针,即数组指针常量;


  在了解到二维数组的数组名是数组指针常量后可对以下代码作出分析:

int main()
{int a[3][4] = {0};printf("sizeof(a) = %d\n",sizeof(a));//当a单独出现在sizeof()中时表示整个数组,内存占用量为48byte;printf("sizeof(a[0][0]) = %d\n",sizeof(a[0][0]));//a[0][0]表示二维数组的第一个元素,内存占用量为4byte;printf("sizeof(a[0]) = %d\n",sizeof(a[0]));//a[0]相当于二维数组中第一维数组的数组名,即第一行的所有内容,占16byte;printf("sizeof(a[0]+1) = %d\n",sizeof(a[0]+1));//表示第二行的所有内容,内存占用量为4byte;printf("sizeof(a+1) = %d\n",sizeof(a+1));//数组名并非单独出现在sizeof()中,故表达式表示数组指针常量+1,占4byte;printf("sizeof(*a) = %d\n",sizeof(*a));//a表示数组指针常量,对其解引用结果为第一行的所有内容,占16byte;printf("sizeof(a[3]) = %d\n",sizeof(a[3]));//sizeof()内部的表达式并不进行计算,所以此时的3无效,表示的二维数组一行的内容。return 0;}

  注意!!!:由于二维数组是由一维数组组成的,所以在对二维数组进行初始化时花括号内嵌套的必须是花括号!若是在花括号内用圆括号“( )”进行初始化,且其中含有逗号,编译器会将其按照逗号表达式进行处理。

二维数组和二维数组名相关推荐

  1. PHP二维数组去重(指定键名)

    本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐. 本文以二维数组去重为引,介绍array_column函数的三种用法 ...

  2. 【C语言】sizeof(数组名),包括 一维数组、字符数组、二维数组

    目录 1. 数组名.sizeof(数组名).&数组名 2. 一维数组的sizeof() 2.1 整型数组的sizeof() 2.2 字符数组的sizeof() 2.3 字符串赋值给字符数组的s ...

  3. c语言bool怎么用_C语言中的一维数组和二维数组什么?怎么用?

    C++| 匠心之作 从0到1入门学编程[免费]​yun.itheima.com C语言除了基本数据类型之外,还提供了构造类型的数据,构造类型的数据包括数组类型.结构体类型和共用体类型.下面我们详细介绍 ...

  4. php 数组与数组之间去重,PHP开发中一维数组与二维数组去重功能实现教程

    本篇文章讲述了PHP实现一维数组与二维数组去重功能示例.希望对在php学习和开发的同学有所帮助! 数组中重复项的去除 一维数组的重复项: 使用array_unique函数即可,使用实例如下: ? $a ...

  5. 第二十一节(数组概要, 一维、二维数组的声明和使用,数组的排序,数组的查找,)...

    一维数组:1:/*数组:1. 数组是一种引用类型2. 数组是一种简单的数据结构,线性的机构3. 数组是一个容器,可以用来存储其他元素,4. 数组也是可以存储任意数据类型的元素5. 数组分为:一维数组, ...

  6. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)...

    二维数组,锯齿数组和集合 一.二维数组 二维数组: 一维数组----豆角 二维数组----表格 定义: 1.一维数组: 数据类型[] 数组变量名 = new 数据类型[数组长度]; 数据类型[] 数组 ...

  7. C语言从青铜到王者——数组详解总结【一维数组、二维数组、字符数组、数组实例】

    所谓数组,是指将那些具有相同类型的.数量有限的若干个变量通过有序的方法组织起来的一种便于使用的形式.数组属于一种构造类型,其中的变量被称为数组的元素.数组元素的类型可以是基本数据类型,也可以是特殊类型 ...

  8. C++阶段01笔记05【数组(概述、一维数组、二维数组)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 5 数组 5.1 概述 5.2 一维数组 5.2.1 一维数组定义方式 --示例 5.2.2 一维数组数组名 --示例 --练习 ...

  9. C语言中的一维数组和二维数组

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/104344394 一 ...

最新文章

  1. 网易云音乐IPO现场:丁石石石石石石石石石敲钟
  2. poj1789(prim)
  3. Python连接字符串用join还是+
  4. Winform中实现自定义水晶按钮控件(附代码下载)
  5. VC控件DateTimePicker使用方法及其相关
  6. SQL语句,统计一段时间内有多少个工作日
  7. C# AutoResetEvent
  8. 5.12 QR分解的阻尼倒数法和正则化方法区别
  9. 十九、PHP框架Laravel学习笔记——批量赋值和软删除
  10. U811.1接口EAI系列之六--物料上传--VB语言
  11. android防止内存溢出浅析
  12. 人工智能(12)----宽动态摄像机技术
  13. python的requests的使用
  14. PHP入门《PHP程序设计案例教程》-- PHP语法基础
  15. php单页菜单,CSS3单页切换导航菜单界面设计的实现详解
  16. python编程基础-task5-面向对象的编程
  17. 5G NR标准 第9章 传输信道处理
  18. 全球及中国零信任远程浏览器隔离行业运营规划与应用前景分析报告2022版
  19. 鸿蒙归蝶的反弹,诛仙鸿蒙副本怎么过
  20. Feng Shui POJ - 3384 [半平面交]

热门文章

  1. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解
  2. 功劳是老板的、钱财是子女的、身体是自己的...
  3. 爬虫:爬取以太坊区块链浏览器数据
  4. java excel 列数_JAVA使用POI获取Excel的列数与行数
  5. osgEarth示例分析——osgearth_features
  6. word行首空格下划线_在Word文档行首空格和下划线问题的解决
  7. Blender 建模案例一(1)
  8. FFmpeg进行音频的解码和播放
  9. 分布式AKF拆分原则
  10. Node版本的升级/降级