函式指標與指標函式

2021-08-14 11:51:41 字數 1304 閱讀 8795

函式指標與指標函式是在 c、c++ 中經常使用,並且非常容易混淆的概念之一,首先我們要理解這兩個東西到底是什麼東西 。指標函式顧名思義它的重點落在函式上,是一種函式叫做指標函式,他叫指標函式的原因是因為它的返回值型別是指標而函式指標呢 ? 它的重點落在指標上。它是一種特殊的指標,一種指向函式的指標 (因為函式名就是乙個指標,是一種指向函式起始位置的指標)變數名和記憶體位址存在乙個對映的關係,函式名就是乙個識別符號,其實它代表的是乙個位址,函式的起始位址,函式指標就是通過指向這個位址來呼叫這個函式的。下面就來詳細的講一講著兩種東西

指標函式

指標函式就是返回值是指標變數的函式,如下所示

int *f(int a, int b);

注意 * 與 f 之間沒有括號,* 是屬於 int 的表示這個函式的返回值是乙個指標如下所示

#include 

using

namespace

std;

double * square (double x)

int main ()

如果接受函式指標的值不是乙個指標變數的話編譯器就會報錯

總之指標函式就是乙個返回值是指標的函式,將放回值的位址返回給呼叫者,用於需要位址的地方。

函式指標

函式指標 顧名思義說的是乙個指標,這個指標和普通指標不同的地方就在於它指向的物件是一類函式,這類函式的返回值和指標的型別一致並且函式的形參列表和指標宣告時候的形參列表一致即可。函式指標比較靈活類似於多型實現時候的方法。

它的宣告方法如下

int (*f) (int,int)

只要是返回值是整形,並且函式的形參是兩個整形的函式都可以通過這個函式指標進行呼叫。是不是很像多型 ?

程式例子如下

#include 

#include

#include

using

namespace

std;

int max (int a,int b)

int (*f) (int,int);

int main ()

注意上面的那個 f 不僅僅可以賦值成 max 函式 只要返回值是 int 兩個引數都要求是 int 的就都可以進行賦值。非常的靈活。函式指標賦值成具體的某個函式以後就和函式名字一樣

函式指標與指標函式

指標函式 指標函式是指函式的返回值型別是乙個指標型別,即本質是乙個函式。我們知道函式都有返回型別 如果不返回值,則為無值型 只不過指標函式返回型別是某一型別的指標。其定義格式如下所示 返回型別識別符號 返回名稱 形式參數列 返回型別可以是任何基本型別和復合型別。返回指標的函式的用途十分廣泛。事實上,...

函式指標與指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...

函式指標與指標函式

函式指標 在程式執行中,函式 是程式的演算法指令部分,它們和陣列一樣也占用儲存空間,都有相應的位址。可以使用指標變數指向陣列的首位址,也可以使用指標變數指向函式 的首位址,指向函式 首位址的指標變數稱為函式指標。1 函式指標定義 函式型別 指標變數名 形參列表 函式型別 說明函式的返回型別,由於 的...