初識c (17)之函式指標及其應用例項

2021-09-25 16:11:29 字數 1255 閱讀 5948

函式指標、指標函式一直都是一起出現的內容,但是兩者知識名字相似罷了,基本沒有什麼關聯。

指標函式:就是返回值是乙個指標的函式,太過簡單,我這裡就不贅述了。

函式指標:是乙個指向函式的指標,這個就有點意思了。聽我慢慢道來。

int a[10];

int function(int i,int j);

這是我們定義的乙個陣列,眾所周知,我們可以用陣列名"a"來表示這個陣列的位址。對於函式呢?我們同樣可以用函式名「」「function」來表示函式的位址。那麼,我們能不能重新定義乙個函式指標來指向這個函式呢?當然是可以的!

int (*ptr_f)(int i,int j);

int* p;

特意將這兩句放在一起作對比,第二句是定義了乙個指向整形的指標,而第一句就是定義了乙個指向形參是(int i,int j)返回值是int,的函式的指標。

p = a;

ptr_f = function;

初始化如上所示。

同樣我們可以用typedef來定義物件型別

typedef int (*ptr_f)(int i,int j);

ptr_f ptr_f_1;

下面是乙個小例子:

#includeusing namespace std;

int f_add(int& i,int& j)

int main()

結果:

3

3############################33

############################33

############################

將函式作為形參傳入另外乙個函式。

#includeusing namespace std;

double integral_f(double (*function)(double x),const double& a,const double& b)

return result;

}double my_function(double x)

int main()

結果:

9
沒想到結果還挺準,這是乙個計算積分的例子。我想你肯定用過那種函式,就是將自己寫的函式作為乙個形參傳入函式進行計算。

C 17 之 結構繫結

注意 結構繫結 structured binding 位於iso iec14882 2017 11.5 節.結構繫結的作用是方便從其它資料結構中提取資料,如 pair,tuple,陣列等.通過結構繫結,可以替代 c 17 之前的 std tie,並且使用更加方便.通用的宣告方式為 auto v1,v...

C 初識函式指標

函式指標,顧名思義,也就是指標,不過這個指標是指向函式的指標。在 c 高階指標話題之高階宣告的演進 這篇博文中提到了函式指標的宣告等,摘出來 接下來的乙個宣告更有趣,但也更容易讓人疑惑 int f 確定括號的含義是分析這個宣告的乙個重要步驟。這個宣告有兩個括號,每對的含義各不相同。第2個括號是函式呼...

C 17 之 新的 初始化規則

c 11 引入列表初始化,即使用的方式對聚合型別進行初始化.聚合型別在 iso iec14882 2017 11.6.1 描述,表示陣列或類 c 11 的列表初始化規則,在與 auto 聯合使用時經常無法達到程式設計師的期望並出錯,因此 c 17 對列表初始化規則進行增強.在使用具體資料型別 不需要...