久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6297|回復: 3
打印 上一主題 下一主題
收起左側

C語言指針與數組詳解

[復制鏈接]
跳轉到指定樓層
樓主
ID:342442 發表于 2018-10-13 15:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
指針與數組是 C 語言中很重要的兩個概念,它們之間有著密切的關系,利用這種 關系,可以增強處理數組的靈活性,加快運行速度,本文著重討論指針與數組之 間的聯系及在編程中的應用。
1.指針與數組的關系 當一個指針變量被初始化成數組名時,就說該指針變量指向了數組。如: char str[20], *ptr;
ptr=str;
ptr 被置為數組 str 的第一個元素的地址,因為數組名就是該數組的首地址, 也是數組第一個元素的地址。此時可以認為指針 ptr 就是數組 str(反之不成立), 這樣原來對數組的處理都可以用指針來實現。如對數組元素的訪問,既可以用下 標變量訪問,也可以用指針訪問。
2.指向數組元素的指針 若有如下定義:
int a[10], *pa;
pa=a;
則 p=&a[0]是將數組第 1 個元素的地址賦給了指針變量 p。
實際上,C 語言中數組名就是數組的首地址,所以第一個元素的地址可以用 兩種方法獲得:p=&a[0]或 p=a。
這兩種方法在形式上相像,其區別在于:pa 是指針變量,a 是數組名。值得 注意的是:pa 是一個可以變化的指針變量,而 a 是一個常數。因為數組一經被 說明,數組的地址也就是固定的,因此 a 是不能變化的,不允許使用 a++、+
+a 或語句 a+=10,而 pa++、++pa、pa+=10 則是正確的。由此可見,此時 指針與數組融為一體。
3.指針與一維數組 理解指針與一維數組的關系,首先要了解在編譯系統中,一維數組的存儲組
織形式和對數組元素的訪問方法。 一維數組是一個線形表,它被存放在一片連續的內存單元中。C 語言對數組
的訪問是通過數組名(數組的起始地址)加上相對于起始地址的相對量(由下標 變量給出),得到要訪問的數組元素的單元地址,然后再對計算出的單元地址的 內容進行訪問。通常把數據類型所占單元的字節個數稱為擴大因子。
實際上編譯系統將數組元素的形式 a[ i]轉換成*(a+i),然后才進行運算。 對于一般數組元素的形式:<數組名>[<下標表達式>],編譯程序將其轉換成:* (<數組名>+<下標表達式>),其中下標表達式為:下標表達式*擴大因子。整個 式子計算結果是一個內存地址,最后的結果為:*<地址>=<地址所對應單元的地 址的內容>。由此可見,C 語言對數組的處理,實際上是轉換成指針地址的運算。
數組與指針暗中結合在一起。因此,任何能由下標完成的操作,都可以用指 針來實現,一個不帶下標的數組名就是一個指向該數組的指針。
4.指針與多維數組 用指針變量可以指向一維數組,也可以指向多維數組。但在概念上和使用上,
多維數組的指針比一維數組的指針要復雜一些。 例如,在一個三維數組中,引用元素 c[ i][j][k]的地址計算最終將換成:
*(*(*(c+i)+j)+k)。了解了多維數組的存儲形式和訪問多維數組元素的內 部轉換公式后,再看當一個指針變量指向多維數組及其元素的情況。
1 指向數組元素的指針變量

若有如下說明: int a[3][4]; int *p;
p=a;
p 是指向整型變量的指針;p=a 使 p 指向整型二維數組 a 的首地址。
*(*(p+1)+2)表示取 a[1][2]的內容;*p 表示取 a[0][1]的內容,因為 p 是指向整型變量的指針;p++表示 p 的內容加 1,即 p 中存放的地址增加一個 整型量的字節數 2,從而使 p 指向下一個整型量 a[0][1]。
2 指向由 j 個整數組成的一維數組的指針變量
當指針變量 p 不是指向整型變量,而是指向一個包含 j 個元素的一維數組。 如果 p=a[0],則 p++不是指向 a[0][1],而是指向 a[1]。這時 p 的增值以一維 數組的長度為單位。
5.指針與字符數組
C 語言中許多字符串操作都是由指向字符數組的指針及指針的運算來實現 的。因為對于字符串來說,一般都是嚴格的順序存取方式,使用指針可以打破這 種存取方式,更為靈活地處理字符串。
另外由于字符串以′\0′作為結束符,而′\0′的 ASCII 碼是 0,它正好是 C 語言的邏輯假值,所以可以直接用它作為判斷字符串結束的條件,而不需要用 字符串的長度來判斷。C 語言中類似的字符串處理函數都是用指針來完成,使程 序運行速度更快、效率更高,而且更易于理解。

完整的pdf格式文檔51黑下載地址:
指針與數組.pdf (67.45 KB, 下載次數: 71)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:412814 發表于 2018-10-29 20:07 | 只看該作者
沒有必要下載,可惜了5個幣。
回復

使用道具 舉報

板凳
ID:85480 發表于 2020-3-21 11:30 | 只看該作者
感謝分享!
回復

使用道具 舉報

地板
ID:401465 發表于 2020-12-9 14:23 | 只看該作者
沒有必要下載,可惜了5個幣。++1
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜私人影院 | 久久九九色 | 91pao对白在线播放 | 欧美精品在线一区二区三区 | 三级视频网站 | 亚洲男人网 | av免费网| 91精品一区 | 国产日韩免费视频 | 国产美女精品视频 | 精品久久国产 | 四虎永久免费地址 | 特黄色一级毛片 | 日韩精品在线视频免费观看 | 999久久久精品 | 中文字幕一区二区三区在线乱码 | 久久久久精 | 浴室洗澡偷拍一区二区 | 日本一区二区三区精品视频 | 日韩在线播放网址 | 视频三区 | 美女视频h | 少妇久久久久 | 黄色免费观看网站 | 久久久久久久久久久成人 | 天堂在线免费视频 | 一级做a爰片久久毛片免费看 | 91看片在线观看 | 国产一区二区三区免费观看在线 | 国产女人精品视频 | 国产成人精品午夜视频免费 | 欧美男人天堂 | 欧美亚洲网站 | 欧美日韩国产精品 | 国产精品爱久久久久久久 | 亚洲视频一区在线 | 国产精品亚洲欧美日韩一区在线 | 国产精品欧美一区二区三区不卡 | 范冰冰一级做a爰片久久毛片 | h在线看| 成年免费大片黄在线观看岛国 |