C語言指標

2021-06-29 16:08:45 字數 1149 閱讀 2775

指標的概念分解

指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。 要搞清乙個指標需要搞清指標的四方面的內容:

1.指標的型別

2.指標所指向的型別

3.指標的值或者叫指標所指向的記憶體區

4.還有指標本身所佔據的記憶體區

先宣告幾個指標放著做例子:

例一:(1)int *ptr;

(2)char *ptr;

(3)int **ptr;

(4)int (*ptr)[3];

(5)int *(*ptr)[4];

1.1 指標的型別

從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別。這是指標本身所具有的型別。所以分析下例一中各個指標的型別:

(1)int *ptr; //指標的型別是int *

(2)char *ptr; //指標的型別是char *

(3)int **ptr; //指標的型別是 int **

(4)int (*ptr)[3]; //指標的型別是 int(*)[3]

(5)int *(*ptr)[4]; //指標的型別是 int *(*)[4]

所以找出指標的型別的方法是不是很簡單?

1.2 指標所指向的型別

當你通過指標來訪問指標所指向的記憶體區時,指標所指向的型別決定了編譯器將把那片記憶體區里的內容當做什麼來看待。從語法上看,你只須把指標宣告語句中的指標名字和名字左邊的指標宣告符 *去掉,剩下的就是指標所指向的型別。例如:

(1)int *ptr; //指標所指向的型別是int

(2)char *ptr; //指標所指向的的型別是char

(3)int **ptr; //指標所指向的的型別是 int *

(4)int (*ptr)[3]; //指標所指向的的型別是 int()[3]

(5)int *(*ptr)[4]; //指標所指向的的型別是 int *()[4]

在指標的算術運算中,指標所指向的型別有很大的作用。

指標的型別(即指標本身的型別)和指標所指向的型別是兩個概念。當對c越來越熟悉時,你會發現,把與指標攪和在一起的「型別」這個概念分成「指標的 型別」和「指標所指向的型別」兩個概念,是精通指標的關鍵點之一。有些教材書上寫得很差,就把指標的這兩個概念攪在一起了,所以看起書來前後矛盾,越看越糊塗。

C語言指標

指標變數是包含記憶體位址的變數,它指向記憶體中的一塊區域,通過指標的值,可以間接訪問到相應的記憶體單元的資料,並做相應的修改。1 指標的定義和簡單使用 定義乙個指標變數和定義一般的變數類似,只需在變數名前面加乙個 對乙個指標變數賦值可以用取位址符 來獲取到乙個變數的位址,如果要獲得指標指向的記憶體區...

C語言指標

1 定義指標變數void change int n 格式 變數型別 變數名 定義了乙個指標變數p 指標變數只能儲存位址 指標變數p前面的int 指標變數p只能指向int型別的資料 int main void change int n 2 指標與陣列 陣列名其實質是乙個指標,但是它和普通的指標變數還是...

c語言指標

編寫程式,在主函式裡用指標陣列輸入六個字串,再用另乙個函式對這六個字串排序,並在主函式中輸出排好序的字串。include void sort char s,int n char temp for int i 0 ifor int j 0 jif strcmp s j s j 1 0 temp s j...