與資料項類似,函式也有位址,函式的位址是儲存其二進位制**的起始位置。假設我們設計乙個名為processarray()的函式,可以使用不同的方式來處理給定的陣列。要實現這種目標,processarray()函式的第二個引數設定為函式指標。要使用函式指標,為此必須完成下面的工作:
函式的位址就是函式名。
宣告指向函式的指標時,也必須指定指標指向的函式型別。這意味著宣告必須指定函式的返回值型別以及函式的特徵標。為提供正確的運算子優先順序,必須在宣告中使用括號將*pf括起來。不然,*pf(int)意味著pf是返回指標的函式,而(*pf)(int)意味著pf是乙個指向函式的指標。
double (*pf)(int);
double cube(int);
pf = cube;
(*pf)扮演的角色與函式名相同
double (*pf)(int);
double cube(int);
pf = cube;
(*pf)(5);
typedef
void (*p_fun)(int nums, int n);
void reverseorder(int nums, int n);
p_fun p;
下面是完整的例項:
#include
using
namespace
std;
typedef
void (*p_fun)(int nums, int n);
void processarray(int nums, int n, p_fun p);
void reverseorder(int nums, int n); //逆序輸出函式中的元素
void positiveorder(int nums, int n); //正序輸出函式中的元素
int main()
; int n = 5;
processarray(nums, n, reverseorder);
processarray(nums, n, positiveorder);
return0;}
void processarray(int nums, int n, p_fun p)
void reverseorder(int nums, int n)
cout
cout
<}
程式設計思想第七章
過載 相同的返回值,相同的函式名稱,不同的引數列表。override註解是jdk1.5之後的產物,可以防止你在不想過載時而意外的進行過載 因為父類沒有這個過載方法,所以不能用這個註解 7.1復用 的三種方式 1,直接new關鍵字建立該類物件,組合 優點 快速方便 缺點 生成和銷毀物件,給效能帶來額外...
第七章程式設計作業
題目內容 完成乙個對候選人得票的統計程式。假設有3個候選人,名字分別為li,zhang和fun。使用結構體儲存每乙個候選人的名字和得票數。記錄每一張選票的得票人名,輸出每個候選人最終的得票數。結構體可以定義成如下的格式 struct person leader 3 輸入格式 第一行有乙個整數n,表示...
python第七章 python教程(第七章)
字典和集合 字典是python中唯一,乙個對映型別 如何建立乙個字典,如下 dict dict 滲透 網路安全 怎麼理解字典呢?現實生活中的字典可以通過首字母進行查詢要查詢的漢子,python也可以這樣理解,通過 前的元素查詢到冒號後的元素。為什麼說字典是唯一乙個對映型別呢?看圖。對映型別區別與序列...