函式指標、指標函式一直都是一起出現的內容,但是兩者知識名字相似罷了,基本沒有什麼關聯。
指標函式:就是返回值是乙個指標的函式,太過簡單,我這裡就不贅述了。
函式指標:是乙個指向函式的指標,這個就有點意思了。聽我慢慢道來。
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 對列表初始化規則進行增強.在使用具體資料型別 不需要...