【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )
生活随笔
收集整理的這篇文章主要介紹了
【C 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、數組取值操作方法
- 二、一維數組取值 下標操作到指針操作 演化過程
- 三、二維數組取值 下標操作到指針操作 演化過程
一、數組取值操作方法
給定一個二維數組 :
int array[2][3];取第 iii 行 , 第 jjj 列的數據 , 可以使用
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 语言】数组 ( 数组取值操作 | array[i][j] 用法 等价于 *( *(array = i) + j ) 用法 | 下标操作到指针操作演化过程 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C 语言】数组 ( 多维数组操作模型
- 下一篇: 【C 语言】数组 ( 多维数组做函数形参