指標陣列
乙個陣列,若其元素均為指標型別資料,稱為指標陣列。 也就是說,指標陣列中每乙個元素都相當於乙個指標變數。其詳細形式應該如下: *a[0], ...*a[n]. 每乙個陣列裡面儲存的是其指向的位址;一維指標陣列的定義形式為:型別名 *陣列名[陣列長度]
例如:int *p[4],由於比*優先順序更高,因此p先與[4]結合,形成p[4]的形式,這顯然是陣列形式。然後再與p前面的*結合,*表示此陣列是指標型別的,每個陣列元素都指向乙個整型變數。
int *arr[5];
陣列指標
陣列指標,是指標
整形指標:int * point;//指向整形資料的指標
浮點型指標:float *p; //指向浮點型資料的指標
乙個簡單的陣列指標定義如下:
int (*p)[10];
//p先和*結合,說明p是乙個指標變數,然後指向乙個大為10個整形的陣列,所以p是乙個指標,指向乙個陣列,叫陣列指標。
陣列指標的使用:
int arr[10] =;
int *p1 = &arr;
int *p2[10] = &arr;
//通過驗證,p2是陣列指標,所以存放位址是合適的
函式指標
首先思考下面這段**
#includevoid test()
int main()
結果為:
輸出的兩個位址是test函式的位址,函式也是有位址的,但是我們如何將他儲存下來呢?
這就用到了函式指標
void test()
void (*p1)();
void *p2();
首先,能夠儲存位址,就要求p1和p2是乙個指標,上面的**中只有p1可以存放,p1先和*結合,說明p1是乙個指標,指向的是乙個函式,指向的函式無引數,返回型別是void
函式指標陣列
函式指標陣列是把位址存放到乙個陣列中,這個陣列就是函式指標陣列,以下是函式指標的陣列的例子:
int (*arr[10])();
arr和[ ]先結合,說明是arr是陣列,陣列內容是int(*)()型別的函式指標
指向函式指標陣列的指標
理解:指向函式指標是在的指標是乙個 指標,指標指向乙個陣列,陣列元素都是函式指標
定義:
void test(const char* str)
int main()
深度理解指標
首先,指標是什麼呢?我們看這樣一段 includeint main 知道了這些以後,讓我們再來看幾個有關指標的定義。指標陣列 指標陣列是陣列,是乙個存放指標的陣列。舉個栗子 int arr1 10 表示每個陣列元素是一級指標,int表示指標指示的型別是整型 char arr2 4 表示每個陣列元素是...
C 指標的深度理解
筆者會從各種的例子和面試題入手,將逐步去分析指標的知識點和指標的一些高階的用法。第乙個例子,也許一些人會疑惑為什麼t是512了,先看下面的圖 從筆者自己畫的圖分析,引用 這個符號返回的是這個型別最低位的位址而不是最高位數的位址,還有就是int型指標和char型的指標的區別到底在 不同型別的指標唯一區...
深度理解指標及相關概念
2.指標變數 指標變數是變數,具有儲存空間。就像int,float等型別一樣,當然,指標有別的變數不具有的特殊用法。1.指標的型別 我們將type 叫做指標的型別,type指的是指標所指向的型別,type是指最後乙個 之前所有的東西,例如 char p,它的type部分就為char char p,它...