多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > C/C++學(xué)習(xí):函數(shù)指針

C/C++學(xué)習(xí):函數(shù)指針

來源:程序員人生   發(fā)布時間:2014-11-18 08:54:54 閱讀次數(shù):3592次

之前在書上看到函數(shù)指針相干的都沒怎樣重視,但是最近在實(shí)際的工作中卻派上了用處。所以認(rèn)真地學(xué)習(xí)了1遍。

函數(shù)指針的申明

申明1個函數(shù)指針很簡單,就是將函數(shù)申明中的函數(shù)名替換為1個指針便可:

C/C++
int test(int para1, double *para2); // 函數(shù)申明 int (*pf)(int para1, double *para2); // 函數(shù)指針申明

NOTE: 必須在申明中用括號將*pf括起來,由于括號的優(yōu)先級比*運(yùn)算符高,因此:

C/C++
int (*pf)(int para1, double *para2); // 1個指向函數(shù)的指針 int *pf(int para1, double *para2); // 1個返回指針的函數(shù)

申明完函數(shù)指針的下1步就是對函數(shù)指針賦值,也就是將函數(shù)指針指向1個類型匹配的函數(shù)(這跟基本類型的指針1致),1個函數(shù)的函數(shù)名就是該函數(shù)的地址

C/C++
pf = test; int (*pf1)(int para1, double *para2) = test; // 也能夠在函數(shù)指針申明時完成初始化

C++11有了自動類型推斷功能,就簡單了很多:

C++11 code
auto pf = test;

使用函數(shù)指針調(diào)用函數(shù)

(*pf)扮演的角色與函數(shù)名相同,因此使用(*pf)時,只需要將它看作函數(shù)名便可:

C/C++
int n = 0; double d = 0.0; int r = 0; r = (*pf)(n, &d); r = pf(n, &d); // 這類方式C/C++也是允許的

函數(shù)指針數(shù)組

我們有可能還需要用到函數(shù)指針數(shù)組,示例以下:

C/C++
int test1(int para1, double *para2); // 函數(shù)申明 int test2(int para1, double *para2); // 函數(shù)申明 int test3(int para1, double *para2); // 函數(shù)申明 int (*pfArray[3])(int para1, double *para2) = {test1, test2, test3}; // 函數(shù)指針數(shù)組申明及初始化 r = *pfArray[0](n, &d); // 函數(shù)調(diào)用

可以看到這類方式使用函數(shù)指針是比較麻煩的,試想如果上面的函數(shù)返回值是const指針,而我們又想將函數(shù)指針數(shù)組申明為不可更改的,那這個const應(yīng)當(dāng)加到哪?這里提供另外1個比較簡單的解決方法,也就是下面將要說到的使用typedef進(jìn)行簡化

使用typedef進(jìn)行簡化

C/C++
typedef int (*p_fun)(int para1, double *para2); // 這樣我們就可以像使用1個普通類型那樣來使用函數(shù)指針了 p_fun pf = test; const p_fun pf1 = test; // 常量函數(shù)指針申明及初始化,注意跟1般的const數(shù)據(jù)類型1樣,常量函數(shù)指針必須在申明時完成初始化 p_fun pfArray[3] = {test1, test2, test3}; const p_fun pfArray1[3] = {test1, test2, test3}; // 常量函數(shù)指針數(shù)組申明及初始化

It's that easy!


參考書籍:《C++ Primer Plus (第6版)中文版》

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: jizzjizz大全 | 日韩精品久久久久久 | 国产成人精品久久 | 国产成+人+综合+亚洲 欧美 | 92看片淫黄大片看国产片 | 波多野结衣视频在线播放 | 免费网站www网站免费 | 嫩草影院在线观看精品视频 | 东方伊人免费在线观看 | 求免费黄色网址 | 国产亚洲精品热视频在线观看 | 成人区精品一区二区不卡亚洲 | 欧美理论片在线观看一区二区 | 亚洲精品美女久久久久 | 亚洲爆乳无码一区二区三区 | 亚洲区视频在线观看 | 涩涩免费播放观看在线视频 | 国产精品久久久久久爽爽爽 | 亚洲福利片 | 欧美精品a毛片免费观看 | 精品一区二区三区四区五区 | 在线亚洲小视频 | 国产精品久久久久久久久久久威 | 99久久精品国产综合男同 | 亚洲欧美日产综合在线看 | 伊人久久婷婷 | 国产精品成人久久久久 | 免费簧网站永久在线播放国产 | 日本一二线不卡在线观看 | 亚洲欧美不卡 | 国产亚洲小视频 | 亚拍精品一区二区三区 | 蜜芽一区二区国产精品 | 高清免费国产在线观看 | 亚洲欧洲精品视频在线观看 | 欧美一级毛片欧美一级无片 | 动漫一级毛片 | 国产精品亚洲欧美日韩一区在线 | 国产一区二区三区四区在线观看 | japanese日本护士xxxx18一19 | 欧美一区二区三区精品国产 |