【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )
文章目錄
- 前言
- 一、數(shù)組符號(hào) [] 與 指針 * 符號(hào) 使用效果 基本等價(jià)
- 二、數(shù)組首地址 與 指針 本質(zhì)區(qū)別
前言
參考 【C 語(yǔ)言】指針 與 數(shù)組 ( 指針 | 數(shù)組 | 指針運(yùn)算 | 數(shù)組訪問(wèn)方式 | 字符串 | 指針數(shù)組 | 數(shù)組指針 | 多維數(shù)組 | 多維指針 | 數(shù)組參數(shù) | 函數(shù)指針 | 復(fù)雜指針解讀) 博客 , 進(jìn)行理解 ;
一、數(shù)組符號(hào) [] 與 指針 * 符號(hào) 使用效果 基本等價(jià)
在上一篇博客 【C 語(yǔ)言】字符串操作 ( 使用 數(shù)組下標(biāo) 操作字符串 | 使用 char * 指針 操作字符串 ) 中 , 使用 數(shù)組符號(hào) [] 與 指針 * 操作 都可以實(shí)現(xiàn) 字符串訪問(wèn) , 因此 這兩種操作是有某種聯(lián)系的 ;
數(shù)組符號(hào) [] 與 指針 * 符號(hào)操作 , 兩種表示方式是等價(jià)的 ;
數(shù)組符號(hào) [] 本質(zhì) : p[i] 表示方式 與 *(p + i) 表示方式是等價(jià)的 ;
- p[i] 方式更加符合 人類的 認(rèn)知閱讀習(xí)慣 ;
- *(p + i) 方式 更加符合 編譯器 的 尋址機(jī)制 ;
從 數(shù)組符號(hào) [] 到 指針 * 符號(hào) 的推演 : p[i] 可以理解為 p[0 + i] , p[0 + i] 將 p 指針變量可以放在下標(biāo)中 , p + i 表示第 i 個(gè)元素的地址 , *(p + i) 表示第 i 個(gè)元素的值 ;
二、數(shù)組首地址 與 指針 本質(zhì)區(qū)別
編譯器 一旦遇到 數(shù)組定義 , 如
int array[10];這個(gè) array 可以看做一個(gè)指針 , 而且是常量指針 , 該指針不能改變 指向 ;
數(shù)組首地址 array 的值 是不可以改變的 ;
普通的指針 , 是可以改變其指向的 ;
數(shù)組 聲明后 是一個(gè) 棧內(nèi)存 變量 , 在函數(shù)生命周期結(jié)束后 , 該變量還需要進(jìn)行 回收 , 回收的 依據(jù)是 數(shù)組的首地址 ;
如果在使用 數(shù)組 的過(guò)程中 , 修改了 數(shù)組 首地址值 , 就會(huì)造成 無(wú)法回收內(nèi)存 ;
這是為了保證 棧內(nèi)存 中 局部變量 內(nèi)存 的 安全性 , 使 數(shù)組 首地址 無(wú)法進(jìn)行修改 , 是一個(gè)常量指針 ;
總結(jié)
以上是生活随笔為你收集整理的【C 语言】数组与指针操作 ( 数组符号 [] 与 指针 * 符号 的 联系 与 区别 | 数组符号 [] 与 指针 * 符号 使用效果 基本等价 | 数组首地址 与 指针 本质区别 )的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【C 语言】字符串操作 ( 使用 数组下
- 下一篇: 【C 语言】字符串 一级指针 内存模型