文章目录

  • 一、多维数组操作模型
    • 1、取出某个数组元素地址
    • 2、取出某个数组元素值
  • 总结

一、多维数组操作模型


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

二维数组为例 ;

1、取出某个数组元素地址

第 000 行 , 第 111 列 元素地址 :

  • array[0] + 1 : array 代表 二维数组首元素地址 , array[0] 是数组首元素值 , 该值是 一维数组 , 数组名是数组首元素地址 , 数组名 + 1 就是第 111 个元素的地址 ;
  • *array + 1 : array 是 二维数组首元素地址 , *array 是二维数组第 000 个元素的值 , 该值是 一维数组 , *array 一维数组名是数组首元素地址 , *array + 1 步长是一维数组元素大小 , 指向第 111 个元素地址 ;
  • &a[0][1] : a[0][1] 是 第 000 行 , 第 111 列 元素变量 , 取地址 , 就是取该变量的地址 , 也就是 第 000 行 , 第 111 列元素的地址 ;

第 iii 行 , 第 jjj 列 元素地址 :

  • array[i] + j : array 代表 二维数组首元素地址 , array[i] 是二维数组第 iii 元素值 , 该值是 一维数组 , 数组名是数组首元素地址 , 数组名 + j 就是第 jjj 个元素的地址 ;
  • *(array + i) + j : array + i 是 二维数组 第 iii 个元素地址 , *(array + i) 是二维数组第 iii 个元素的值 , 该值是 一维数组 , *(array + i) 一维数组名是数组首元素地址 , *array + j 步长是一维数组元素大小 , 指向第 jjj 个元素地址 ;
  • &a[i][j] : a[i][j] 是 第 iii 行 , 第 jjj 列 元素变量 , 取地址 , 就是取该变量的地址 , 也就是 第 iii 行 , 第 jjj 列元素的地址 ;

2、取出某个数组元素值

取出某个元素值 , 就是在上面的 " 第 iii 行 , 第 jjj 列 元素地址 " 基础上 , 加上 * 取该地址对应的值 ;

第 iii 行 , 第 jjj 列 元素值 :

  • *(array[i] + j)
  • *(*(array + i) + j) ;
  • a[i][j] ;

总结

上述不同操作的由来 , 就是因为 , 数组 既可以使用 [] 下标的方式访问 , 又可以使用 指针 * 符号访问 ;

二维数组中 , 还可以使用 [] 符号访问一维数组 , 之后再使用 * 指针访问一维数组中的元素 ;

【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )相关推荐

  1. R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值

    R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...

  2. arr和arr的区别以及数组首元素地址和整个数组地址的区别

    1.arr和&arr 我们学过C语言可以知道,arr并不是C语言中的关键字,只是普通的用户定义标识符.是取array(数组)前三个字符来定义数组. 不管你用arr[]={0}还是a[]={0} ...

  3. 静态链表中指针表示的是() A 内存地址 B下一元素地址 C 下一元素在数组的位置

    1.静态链表中指针表示的是() A 内存地址 B下一元素地址 C 下一元素在数组的位置 D 左.右孩子地址 答案:C 分析: 静态链表:数组的每一个下标都对应一个data和一个cur.数据域data用 ...

  4. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  5. 二维数组数和指针操作的理解

    #include<string.h> #include <stdio.h> int main(void) {int a[4][2] = { { 2,4 },{ 6,8 },{ ...

  6. 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )

    文章目录 一.数据类型 二.数据类型本质 ( 数组地址 | 数组首元素地址 ) 一.数据类型 " 数据类型 " 是 数据的抽象 ; 相同类型的数据 , 表示形式相同 , 存储格式相 ...

  7. python二维数组去重复_python 去除二维数组/二维列表中的重复行方法

    python 去除二维数组/二维列表中的重复行方法 之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = ...

  8. 【C语言指针】 回调函数、冒泡函数模拟实现qsort、指针和数组笔试题解析

    目录 一.回调函数 定义: 用回调函数形式实现加法运算 二.qsort 函数参数: void指针 用qsort排序整型和结构体 用冒泡函数模拟实现qsort,排序整型和结构体 三.指针和数组笔试题解析 ...

  9. 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )

    文章目录 一.数组相关地址 1.数组首元素地址 2.数组地址 二.代码示例 一.数组相关地址 数组首元素地址 与 数组地址 值相等 ; int array[10]; 其中 array + 1 的值是 ...

最新文章

  1. elasticsearch数据长期保存的方案
  2. python学不会的表情包-python这么简单 为何这么多人学不会
  3. 删除安装的mysql数据库文件_安装/删除MySQL数据库
  4. android怎么打开wifi的组播功能
  5. 请在贵网站的根目录下部署一个文件_使用 github pages, 快速部署你的静态网页
  6. 在Leangoo里怎么设置看板周期?
  7. 华为网络设备上的常用安全技术(一)
  8. 201609-1-最大波动
  9. IEEE会议Latex模板下载教程
  10. java解析MT940报文,swift MT报文解析处理
  11. win7下如何显示缅文和使用缅文输入法?
  12. ckplayer6.8 php播放,ckplayer官方版下载-ckplayer播放器v6.8 最新版 - 极光下载站
  13. 阿帕奇apache-apollo-1.7.1-windows-distro
  14. 2019.05 随笔
  15. Mac访问微软远程桌面Microsoft Remote Desktop For Mac
  16. vue2路由手动创建二级路由路由传参路由守卫打包上线
  17. gitbook 插入图片_【整理】Gitbook和Gitbook Editor使用心得
  18. 计算机导师名人,天哪,这些名人的老师竟然也这么牛!
  19. java银行驻场开发,满满干货指导
  20. 主动变被动9个例句_【语法课堂】全面了解被动语态的特殊用法考点总结

热门文章

  1. Configuration类在网页实现对web.config的修改[转]
  2. golang-china
  3. 用JSON技术加快AJAX程序开发
  4. 【NOI2015】荷马史诗
  5. SectionList的使用
  6. 两种三维点云密度聚类方法的研究与对比
  7. VS2010程序打包操作
  8. 《Effective C#》读书笔记——条目11:理解短小方法的优势C#语言习惯
  9. ASP.NET如何给控件增加属性?
  10. UML建模系列文章总结 (转载)