1. 程式人生 > >深入理解指標陣列 ,陣列指標 ,函式指標 ,函式指標陣列 ,指向函式指標陣列的指標

深入理解指標陣列 ,陣列指標 ,函式指標 ,函式指標陣列 ,指向函式指標陣列的指標

/指標陣列
示例:char *a[4]
理解:定義了一個數組,而它的每個元素的型別是一個指向字元/字串的指標。
元素表示:char *a[i]   char *(a[i])是一樣的,因為[]優先順序高於*
思考:是否可以這樣理解 (char*)arr[4]?
深入理解:




陣列指標:

示例:char (*a)[4]
表示一個指向“一個有4個字元型別元素的陣列”的指標。
元素表示::char (*a)[i] 
深入理解:


函式指標:
定義:函式指標是指向函式的指標變數。
宣告示例:int (*ptr)(int x, int y);
返回值型別: ( * 指標變數名) ([形參列表]);
注意:指向函式的指標變數沒有++和--運算,用時要小心。


指標函式陣列
定義:
int add(int a,int b);
int sub(int a,int b);
int mul(int a,int b);
int div1int a,int b();
int (*Func)(int,int);

void printf(Func *f)
{
int a = 2;
int b = 3;
printf("%f",f(a,b))
}


引數個數,型別,返回值與所指向的函式一致,亦即這是定義了一個統配的型別。
帶函式指標的函式的定義方法:

定義方法二:

使用typedef定義
typedef int (*oper_func[])(int,int);
返回值:返回值與所指向的函式一致