C語言指標函式和函式指標區別

2021-09-11 14:59:51 字數 1222 閱讀 5579

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 它首先是乙個函式,只不過這個函式的返回值是乙個位址值,函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且,在主調函式中,函...