c和c++中經常會用到指標,和資料項一樣,函式也是有位址的,函式的位址是儲存其機器語言**的記憶體的開始位址。
指標函式和函式指標經常會混淆,乙個是返回指標的函式,另乙個是指向函式的指標,下面就分別解釋指標函式和函式指標的區別。
指標函式是返回指標的函式主體是函式,返回值是乙個指標
基本宣告形式:返回資料型別 + * + 函式名 + (變數型別1,…);
e.g :
int* fun(int,int);
int * fun(int,int);
int *fun(int,int);
這三種宣告都可以,第一種更加直觀 返回值是 int* 型別
舉個栗子:
#includeint* fun(int* x) //傳入指標
int main()
輸出結果:2
函式指標是指向函式的指標主體是指標指向的是乙個函式的位址
基本宣告形式:返回資料型別 + (*函式名) + (變數型別1,…);
注意 * 和函式名要用括號括起來,否則因為運算子的優先順序原因就變成指標函式了
e.g:
int (*fun) (int);
#includeint add(int x,int y)
int (*fun) (int,int); //宣告函式指標
int main()
輸出結果:8 6
上面的樣例中,使用函式指標時使用fun(3,5)
和(*fun)(3,5)
都可以
函式指標的引數列表要和函式指標指向的函式的引數列表一致
主要記住指標函式是返回指標的函式而函式指標是指向函式的指標
在這個基礎上可以有函式指標函式和指標函式指標之類的
指標函式宣告的時候 * 和函式名不需要括號括起來
函式指標宣告的時候 * 需要和函式名用括號括起來(優先順序原因)
C語言指標函式和函式指標區別
指標函式是返回指標的函式,主體是函式,返回值是乙個指標 基本宣告形式 返回資料型別 函式名 變數型別1,int fun int,int int fun int,int int fun int,int 這三種宣告都可以,第一種更加直觀 返回值是 int 型別 示例 includeint fun int...
C語言 指標函式和函式指標
指標函式和函式指標 指標函式其實是乙個簡稱,是指帶指標的函式,它本質上是乙個函式,只是返回的是某種型別的指標。其定義的格式為 型別識別符號 函式名 參數列 函式指標,從本質上說是乙個指標,只是它指向的不是一般的變數,而是乙個函式。因為每個函式都有乙個入口位址,函式指標指向的就是函式的入口位址。其定義...
C語言 指標函式和函式指標
1 指標函式是指帶指標的函式,本質上是乙個函式,函式返回值是某一型別的指標 定義 型別識別符號 函式名 參數列 int f int x,int y 它首先是乙個函式,只不過這個函式的返回值是乙個位址值,函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且,在主調函式中,函...