- C語(yǔ)言指針的總結 推薦度:
- C語(yǔ)言中各種類(lèi)型的指針的概念總結 推薦度:
- 相關(guān)推薦
對C語(yǔ)言指針的總結
指針(Pointer)就是內存的地址,C語(yǔ)言允許用一個(gè)變量來(lái)存放指針,這種變量稱(chēng)為指針變量。指針變量可以存放基本類(lèi)型數據的地址,也可以存放數組、函數以及其他指針變量的地址。以下僅供參考!

程序在運行過(guò)程中需要的是數據和指令的地址,變量名、函數名、字符串名和數組名在本質(zhì)上是一樣的,它們都是地址的助記符:在編寫(xiě)代碼的過(guò)程中,我們認為變量名表示的是數據本身,而函數名、字符串名和數組名表示的是代碼塊或數據塊的首地址;程序被編譯和鏈接后,這些名字都會(huì )消失,取而代之的是它們對應的地址。
| 定 義 | 含 義 |
|---|---|
| int *p; | p 可以指向 int 類(lèi)型的數據,也可以指向類(lèi)似 int arr[n] 的數組。 |
| int **p; | p 為二級指針,指向 int * 類(lèi)型的數據。 |
| int *p[n]; | p 為指針數組。[ ] 的優(yōu)先級高于 *,所以應該理解為 int *(p[n]); |
| int (*p)[n]; | p 為二維數組指針。 |
| int *p(); | p 是一個(gè)函數,它的返回值類(lèi)型為 int *。 |
| int (*p)(); | p 是一個(gè)函數指針,指向原型為 int func() 的函數。 |
1) 指針變量可以進(jìn)行加減運算,例如p++、p+i、p-=i。指針變量的加減運算并不是簡(jiǎn)單的加上或減去一個(gè)整數,而是跟指針指向的數據類(lèi)型有關(guān)。
2) 給指針變量賦值時(shí),要將一份數據的地址賦給它,不能直接賦給一個(gè)整數,例如int *p = 1000;是沒(méi)有意義的,使用過(guò)程中一般會(huì )導致程序崩潰。
3) 使用指針變量之前一定要初始化,否則就不能確定指針指向哪里,如果它指向的內存沒(méi)有使用權限,程序就崩潰了。對于暫時(shí)沒(méi)有指向的指針,建議賦值NULL。
4) 兩個(gè)指針變量可以相減。如果兩個(gè)指針變量指向同一個(gè)數組中的某個(gè)元素,那么相減的結果就是兩個(gè)指針之間相差的元素個(gè)數。
5) 數組也是有類(lèi)型的,數組名的本意是表示一組類(lèi)型相同的數據。在定義數組時(shí),或者和 sizeof、& 運算符一起使用時(shí)數組名才表示整個(gè)數組,表達式中的數組名會(huì )被轉換為一個(gè)指向數組的指針。
【對C語(yǔ)言指針的總結】相關(guān)文章:
C語(yǔ)言指針的總結08-12
C語(yǔ)言的指針10-11
C語(yǔ)言指針教學(xué)10-28
C語(yǔ)言指針的用法07-02
什么是C語(yǔ)言中指針 C語(yǔ)言指針的基礎使用10-01
C語(yǔ)言指針的傳遞10-13
C語(yǔ)言指針的概念08-20
C語(yǔ)言指針函數和函數指針詳解09-29
C語(yǔ)言指針相關(guān)知識09-17