深入理解指標陣列 ,陣列指標 ,函式指標 ,函式指標陣列 ,指向函式指標陣列的指標
阿新 • • 發佈:2019-01-06
/指標陣列
示例:char *a[4]
理解:定義了一個數組,而它的每個元素的型別是一個指向字元/字串的指標。
元素表示:char *a[i] char *(a[i])是一樣的,因為[]優先順序高於*
思考:是否可以這樣理解 (char*)arr[4]?
深入理解:
表示一個指向“一個有4個字元型別元素的陣列”的指標。
元素表示::char (*a)[i]
深入理解:
函式指標:
定義:函式指標是指向函式的指標變數。
宣告示例:int (*ptr)(int x, int y);
返回值型別: ( * 指標變數名) ([形參列表]);
注意:指向函式的指標變數沒有++和--運算,用時要小心。
指標函式陣列
定義:
typedef int (*oper_func[])(int,int);
返回值:返回值與所指向的函式一致
示例: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);
返回值:返回值與所指向的函式一致