【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )
2023-06-13 09:18:00 时间
文章目录
一、数组取值操作方法
给定一个二维数组 :
int array[2][3];
取第
行 , 第
列的数据 , 可以使用
array[i][j]
方式 , 也可以使用
*( *(array = i) + j )
方式 ;
其中 array[i][j]
方式是比较符合 人类 阅读习惯的 , 编译器如果遇到上述代码 , 会将其翻译为 *( *(array = i) + j )
代码 ;
使用指针操作 , 是符合编译器习惯的操作方法 ;
二、一维数组取值 下标操作到指针操作 演化过程
一维数组取值演化过程 : p[i]
到 *(p + i)
演化 ;
p[i]
=> p[0 + i]
=> *(p + i)
;
三、二维数组取值 下标操作到指针操作 演化过程
多维数组取值演化过程 :
array[i][j]
中 []
的结合方向是 从左到右 进行结合 ;
array[i][j]
操作中 , 先进行 array[i]
运算 , 然后进行 [j]
运算 ;
array[i][j]
=> array[0 + i][j]
=> *(array + i)[j]
=> *(array + i)[0 + j]
=> *( *(array = i) + j )
相关文章
- c语言基础—-字符串数组
- 数组 选择排序 c语言[通俗易懂]
- 【说站】c语言中数组的三种类型
- R语言主成分PCA、因子分析、聚类对地区经济研究分析重庆市经济指标|附代码数据
- e语言-E语言 5.0 正式版(精简安装版)
- 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )
- 【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )
- 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )
- 【C 语言】字符串操作 ( C 字符串 | 字符数组始化 )
- 【C 语言】二级指针作为输入 ( 指针数组 | 将 二级指针 作为函数输入 | 抽象函数业务逻辑 )
- 【C 语言】数组 ( 数组相关地址 | 数组首元素地址 | 数组地址 )
- 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 栈内存创建 )
- Go语言复数
- Go语言多维数组简述
- go语言之数组详解编程语言
- Go语言模拟枚举(const和iota模拟枚举)
- Linux下编辑C语言实战指南(linux怎么编辑c语言)
- 基于c语言的MSSQL数据库开发实践(cmssql)
- 将Linux语言轻松转换为中文,让使用更加高效(linux转中文)
- 文件学习Linux:轻松修改文件(linux语言修改)
- 开启 Oracle 与 C 语言之间的同步视图(c oracle同步视图)
- c语言字符数组与字符串的使用详解
- 深入理解c语言数组