指標陣列本質上是陣列,是乙個存放指標的陣列。
eg: ①int *arr1[10];
②char *arr2[10];
③char **arr3[5];
① ② ③ 均為指標陣列, ①是陣列(int*型別)中元素是 (int*型別) ;
②是陣列(char*型別)中元素是(char*型別);
③ 陣列中存放 二級指標
陣列指標本質上是指標,是乙個指向陣列的指標。 指標變數存放陣列位址
eg:int *pint; 指向整型資料的指標:
float *pf; 指向浮點型資料的指標;
int *p[10]; 指標陣列 陣列中存放型別為 int * 型別的指標;
int (*p)[10]; 指標陣列 指向整形陣列的指標;
注: int *p[10]; & int (*p)[10];
p 先與什麼結合,即可表示 p 本質是什麼
" [ ] " 的優先順序於 " * " 的優先順序
函式指標本質上是指標,是乙個指向函式的指標,即指標變數儲存的是函式的位址
eg: void test(char* str);
void (*p)(char*) //p是乙個指標,並且指向乙個函式,這個函式引數是char*,返回型別是void型
哪乙個可以存放函式test 的位址?
void (*p1)();
void *p2();
首先,能給儲存位址,就要求p1或p2是指標
p1可以存放。p1先和*結合,即p1是指標,指標指向乙個函式,指向的函式沒有引數,返回值為空
(*(void(*)())0)();
void (*signal(int,void(*)(int)))(int); 簡化為:void (*)(int) signal(int,void(*)(int));
陣列是乙個存放相同型別資料的儲存空間,要把 函式的位址 存到乙個陣列中,那這個陣列就叫函式指標陣列。
如何定義:
int (*p1[10])(); √ p1先和「 [ ] 」結合,說明p1是陣列,陣列內容是 int(*)()型別的函式指標
int *p2[10](); ×
int (*)()p3[10]; × 定義常函式指標陣列
用途:轉移表
例子:計算器
指向函式指標陣列的指標,指標指向乙個陣列,陣列的元素都是函式指標
eg:void (*(*a)[10])(); 函式指標陣列的指標
C語言指標的理解以及指標的指標的理解
指標指向的是記憶體位址編號,記憶體位址編號指向的是對應的內容。我們需要乙個變數,來儲存記憶體位址編號,這個變數的值是乙個記憶體位址編號,但是我們可以通過修改變數的值,來不斷的改變記憶體位址編號。但是,我們如果需要改變該記憶體位址編號的值時,就需要對該記憶體位址編號的值進行修改,而不改變記憶體位址編號...
this指標的理解
苦澀的茶 產品開發 先要理解class的意思。class應該理解為一種型別,象int,char一樣,是使用者自定義的型別。用這個型別可以來宣告乙個變數,比如int x,myclass my等等。這樣就像變數x具有int型別一樣,變數my具有myclass型別。理解了這個,就好解釋this了,my裡的...
指標的理解
一級指標 二級指標 指標和陣列 陣列 是多個同型別資料的集合,在物理空間中儲存是連續的,大小相同的空間。指標 指標就是乙個變數,它儲存的是其他變數在記憶體中的位置。當陣列作為引數傳遞給函式時,會退化為指標。指標陣列 int p 10 這就是指標陣列的定義形式,指標陣列本質就是乙個陣列,只不過陣列的每...