最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C/C++編程筆記:神一般的C語言指針,你能夠看懂多少?

2020-05-31 16:50 作者:C語言編程__Plus  | 我要投稿

曾經(jīng)閱讀《C/C++程序員面試指南》中指針一塊,以前一知半解的指針問題頃刻間懂了,今天分享一下,看大家是不是真正了解C語言指針!

下面,我們可以先來做個(gè)測試,如果下面的指針問題你能夠全都解答正確,那么你的C語言功底真是神一般的了。

1.int *p;

2.int **p;

3.int *p[10];

4.int (*p)[10];

5.int *p(int);

6.int (*p)(int);

7.int (*p[10])(int);

這七個(gè)難度還不是很大,相信大多數(shù)讀者都能夠答的出來。

答案:

1.一個(gè)指向整型數(shù)據(jù)的指針

2.一個(gè)指針的指針,它指向的指針指向一個(gè)整型數(shù)據(jù)

3.一個(gè)有十個(gè)指針的數(shù)組,該指針指向整型數(shù)據(jù)

4.一個(gè)指向有十個(gè)整型數(shù)據(jù)數(shù)組的指針

5.就一個(gè)函數(shù)(不是函數(shù)指針),該函數(shù)有一個(gè)整型參數(shù),返回值為一個(gè)指向整型的指針

6.一個(gè)函數(shù)指針,該函數(shù)有一個(gè)整型的參數(shù),返回值為整型類型

7.一個(gè)有十個(gè)指針的數(shù)組,該數(shù)組中的指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)

啊,當(dāng)時(shí)看完我就吁了口氣,真神一般似的,但是但我接著看下去,下面有碰到一個(gè),我徹底崩潰了.......

題目是這樣的:

請(qǐng)解析 (*(void (*)())0)() 的含義。// 怎么樣?要HOLD住阿!

分析問題:

不賣關(guān)子了,但是我早HOLD不住了。書中的答案是這樣的:

有些微處理器從0地址啟動(dòng),有時(shí)為了模擬開機(jī)時(shí)的情形,需要設(shè)計(jì)一條C 語句,去執(zhí)行0地址的內(nèi)容,于是就有了(*(void (*)())0)() 這條語句。

這條語句一眼看上去讓人頭疼,但分析之后還是挺簡單的。

首先,當(dāng)有如下函數(shù)聲明時(shí):

void fun(param);

這個(gè)函數(shù)的調(diào)用形式為:fun(param);

題目的函數(shù)沒有參數(shù),所以就簡化成fun();

而0是這個(gè)函數(shù)的入口地址,即0就是這個(gè)函數(shù)的指針值,指針的函數(shù)聲明為:

void (*pFun)(param);

調(diào)用形式為:(*pFun)(param);

對(duì)于本題可以寫成:( *0 ) ();

但是函數(shù)指針變量不能是個(gè)常數(shù),所以還要把0強(qiáng)制轉(zhuǎn)換成函數(shù)指針,根據(jù)原題可以元函數(shù)的函數(shù)指針原型為 void (*)();

于是(*(void (*)())0)()可以這樣來分析,首先用void (*)()把0強(qiáng)制轉(zhuǎn)換成了函數(shù)指針,然后再調(diào)用函數(shù)指針0所指向的函數(shù)。

可以用typedef來加深對(duì)本句的理解,如下:

typedef void (*pFun)();

((*pFun)0)();

這兩句和(*(void (*)())0)()是等價(jià)的,但是這樣更有助于加深對(duì)本句的理解。

總結(jié):(*(void (*)())0)()就是 *(void (*)())0 所對(duì)應(yīng)的函數(shù)的調(diào)用。

希望對(duì)大家有幫助!

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來成長!
另外,UP在主頁上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~

C/C++編程筆記:神一般的C語言指針,你能夠看懂多少?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
金山区| 平江县| 镇安县| 大关县| 昂仁县| 铁岭市| 海盐县| 高碑店市| 乌兰县| 永靖县| 左贡县| 兴文县| 邵阳市| 兰西县| 富川| 洪雅县| 漯河市| 巴林右旗| 且末县| 崇阳县| 长治市| 合川市| 乌拉特中旗| 通河县| 弥勒县| 芜湖市| 敦煌市| 来宾市| 榆社县| 长葛市| 澜沧| 胶州市| 大姚县| 赤峰市| 泌阳县| 韩城市| 扎赉特旗| 宁陵县| 德钦县| 滦南县| 泰来县|