文章目录

  • 总结
  • 一、多维数组本质
  • 二、完整代码示例

总结

n 维数组名称本质 是 n-1 级数组指针

一、多维数组本质


给定多维数组 :

    // 声明一个多维数组int array[2][3];

打印二维数组 , 打印 arrayarray + 1 的值 , array 是数组首元素地址 ;

打印结果是 array = 6422188, array + 1 = 6422200 , 往后跳了 12 字节 ; 该二维数组 2 行 3 列 , 每行有 3 个 int 值 , 12 字节 , 这是跳转了 一列 的内存大小 ;

上述 二维数组 名 , 相当于 一级数组指针 ;

    // 打印 array 和 array + 1 的值 , array 是数组首元素地址// array = 6422188, array + 1 = 6422200 , 往后跳了 12 字节// 该二维数组 2 行 3 列 , 每行有 3 个 int 值 , 12 字节// 这是跳转了 一列 的内存大小// 多维数组名 相当于一个 数组指针// 二维数组名 相当于一个 一维数组指针// 三维数组名 相当于一个 二维数组指针printf("array = %d, array + 1 = %d\n", array, array + 1);

打印 &array&array + 1 的值 , &array 是数组首地址 ;

打印结果是 &array = 6422188, &array + 1 = 6422212 , 往后跳了 24 字节 ; 二维数组总大小是 24 字节 , 这是跳转了一个二维数组的大小 ;

    // 打印 &array 和 &array + 1 的值 , &array 是数组首地址// &array = 6422188, &array + 1 = 6422212 , 往后跳了 24 字节// 二维数组总大小是 24 字节 , 这是跳转了一个二维数组的大小 ;printf("&array = %d, &array + 1 = %d\n", &array, &array + 1);

二、完整代码示例


完整代码示例 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>/*** @brief main 多维数组名本质* @return*/
int main()
{// 声明一个多维数组int array[2][3];// 循环控制变量int i = 0, j = 0;// 用于给 多维数组 赋值时的累加索引值int index = 1;// 给多维数组赋值for(i = 0; i < 2; i++){for(j = 0; j < 3; j++){array[i][j] = index++;}}// 打印 多维数组 元素 值for(i = 0; i < 2; i++){for(j = 0; j < 3; j++){printf("%d\n", array[i][j]);}}// 打印 array 和 array + 1 的值 , array 是数组首元素地址// array = 6422188, array + 1 = 6422200 , 往后跳了 12 字节// 该二维数组 2 行 3 列 , 每行有 3 个 int 值 , 12 字节// 这是跳转了 一列 的内存大小// 多维数组名 相当于一个 数组指针// 二维数组名 相当于一个 一维数组指针// 三维数组名 相当于一个 二维数组指针printf("array = %d, array + 1 = %d\n", array, array + 1);// 打印 &array 和 &array + 1 的值 , &array 是数组首地址// &array = 6422188, &array + 1 = 6422212 , 往后跳了 24 字节// 二维数组总大小是 24 字节 , 这是跳转了一个二维数组的大小 ;printf("&array = %d, &array + 1 = %d\n", &array, &array + 1);// 定义 指向数组 的指针变量int (*p)[3] = NULL;// 为 数组指针变量 赋值p = array;// 打印 多维数组 元素 值printf("\np:\n");for(i = 0; i < 2; i++){for(j = 0; j < 3; j++){printf("%d\n", p[i][j]);}}// 由上面的打印结果可知 , 二维数组的名称 本质是 一级数组指针// n (n >= 2) 维数组名称本质 是 n-1 级数组指针// 命令行不要退出system("pause");return 0;
}

执行结果 :

【C 语言】数组 ( 多维数组本质 | n 维数组名称本质 是 n-1 级数组指针 )相关推荐

  1. 【IT】C语言函数中怎么返回一个二维数组

    C语言函数中怎么返回一个二维数组

  2. C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。

    例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...

  3. C语言求二维数组平均数,一道JavaScript的二维数组求平均数的题

    JavaScript中只支持一维数组,但是可以在数组中嵌套数组来创建二维以至于多维的数组.今天下午在看书时候,发现一道感觉比较有意思的题,就是js中如何求二维数组的列之和和行之和,现在就给大家分享下, ...

  4. c语言实验7字符串,C语言实验六(第七章二维数组字符串数组)

    C语言实验六(第七章二维数组字符串数组) 第 1 页 共 7 页第七章二维数组.字符串数组题[书面作业] 以书面作业形式上交,2010 年 11 月 1 日课堂交三道题的源程序1. 编写一个主函数:用 ...

  5. C语言编写杨辉三角(二维数组方法)

    C语言实现杨辉三角(二维数组) 杨辉三角是什么 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,帕斯卡(1623--- ...

  6. c语言随机生成整数存放一维数组_C语言入门教程(十)多维数组

    作业: 1.编写程序从键盘得到一个非负数,统计出每个数字在各数位上出现的次数并把结果打印在屏幕上 一.变长数组 C99规范中允许使用变长数组 声明变长数组时可以使用变量表示存储区个数 如果多次运行这个 ...

  7. C语言基础入门48篇_30_二维数组的定义与使用(二维数组的定义:type 数组名[行][列]、二维数组的初始化、二维数组的引用)

    1. 二维数组的定义 type 数组名[行][列] 2. 二维数组的初始化 2.1 全部初始化为0 char chAry[2][3] = { 0 }; 实例: #include <stdio.h ...

  8. C语言练习3—数组法和指针法输出二维数组

    2019/4/12 题目:有一个3*4的二维数组,要求数组法和指向元素的指针变量输出二维数组中元素的值 输出结果为: 数组法: #include <stdio.h> int main(vo ...

  9. 黑马程序员C语言基础(第五天)运算符与表达式、程序流程结构、数组和字符串、函数

    https://www.bilibili.com/video/BV15W411K7k6?p=93&spm_id_from=pageDriver 黑马程序员C语言基础(第五天)运算符与表达式.程 ...

最新文章

  1. 2017android开发找不到工作,揭秘蒋多多2017生活现状,30岁找不到工作曾绝望自杀...
  2. go 项目 cmd目录_Golang 项目布局浅析
  3. python中property方法有用_python中@property和property函数常见使用方法示例
  4. android 走马灯效果
  5. 用Flex绘制带Icon的Tooltip
  6. java 指定垃g1圾收集_Java知识梳理--JVM
  7. (45)VHDL实现算术器
  8. 远程桌面管理工具RDCMan
  9. springboot毕设项目超市仓库管理系统15g4i(java+VUE+Mybatis+Maven+Mysql)
  10. python残差神经网络_残差神经网络
  11. 速读原著-UnixLinux基础(六)
  12. CAD卸载不干净不能重新安装(恶心死我了)
  13. 解决IE8/IE9无法加载Activex控件问题
  14. iMeta | 俄亥俄州立大学郑庆飞组发表多组学方法研究肿瘤微生物组综述
  15. I2C 专题(一)I2C 简介
  16. 二分查找法-floor和ceil函数实现(C++)
  17. 杂散干扰解决办法_实用干货——6种常见杂散问题的成因分析及解决办法
  18. 央行数字货币(CBDC)能否终结美元货币体系?
  19. 网络服务器没运行,「dns网络服务器」未响应应该如何解决呢
  20. 动态规划: dp+递推——确定动态矩阵dp含义,确定每个状态下面临的选择和对结果值影响,选择符合题意的作为结果存储在dp中

热门文章

  1. 测试网站访问速度的5个方法
  2. Mono+Nginx环境
  3. 数论 - 简单数位推理 --- NYIST 514
  4. SQLite 函数大全
  5. autoenv的使用方法
  6. 基于吉日嘎拉的通用权限管理WebForm版扩展:字典选项管理和缓存管理
  7. Compmgmtlauncher.exe问题解决方法
  8. ubuntu下创建eclipse桌面快捷方式
  9. C#+Mapxtreme 实现一些GIS系统基本的功能
  10. 常见排序算法及其java实现