摘要:三文讀透指針上篇本文將繼續(xù)介紹有關(guān)函數(shù)指針的相關(guān)內(nèi)容。在大型工程里,函數(shù)指針應(yīng)用還是挺普遍的。首先看閱讀下面兩段有趣的代碼出自語(yǔ)言陷阱與缺陷看看他們是什么意思代碼代碼函數(shù)指針數(shù)組函數(shù)指針數(shù)組,即存放函數(shù)指針的數(shù)組。
在【上篇】中,小邊已經(jīng)介紹過(guò)了字符指針,指針數(shù)組,數(shù)組指針及數(shù)組和指針傳參,忘記的小伙伴可以點(diǎn)這里哦。
三文讀透指針【上篇】
本文將繼續(xù)介紹有關(guān)函數(shù)指針的相關(guān)內(nèi)容。
正文開(kāi)始@邊通書
函數(shù)指針,顧名思義是存放函數(shù)地址的指針。
在大型工程里,函數(shù)指針應(yīng)用還是挺普遍的。
首先看:
閱讀下面兩段有趣的代碼(出自《C語(yǔ)言陷阱與缺陷》)
看看他們是什么意思?
//代碼1 (*(void (*)())0)();//代碼2void (*signal(int , void(*)(int)))(int);
函數(shù)指針數(shù)組,即存放函數(shù)指針的數(shù)組。
上代碼感受一下:
那如何應(yīng)用呢?
現(xiàn)在我們來(lái)實(shí)現(xiàn)一個(gè)計(jì)算器功能:
函數(shù)指針數(shù)組的應(yīng)用:
小注意:下篇文章將繼續(xù)對(duì)此段代碼進(jìn)行改造(回調(diào)函數(shù))。
再附上源代碼:
#include int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}int Mul(int x, int y){ return x*y;}int Div(int x, int y){ return x / y;}void menu(){ printf("**************************/n"); printf("***** 1.Add 2.Sub *****/n"); printf("***** 3.Mui 4.Div *****/n"); printf("***** 0.exit *****/n"); printf("**************************/n");}int main(){ int input = 0; do { menu(); printf("請(qǐng)選擇:>/n"); scanf("%d", &input); int x = 0; int y = 0; int ret = 0; int(*pfArr[5])(int, int) = { 0, Add, Sub, Mul, Div }; // 0 1 2 3 4 if (input == 0) { printf("退出計(jì)算器/n"); } else if (input >= 1 && input <= 4) { printf("請(qǐng)輸入兩個(gè)操作數(shù):>/n"); scanf("%d %d", &x, &y); ret = pfArr[input](x, y); printf("%d/n", ret); } else { printf("輸入錯(cuò)誤,請(qǐng)重新輸入/n"); } } while (input); return 0;}
未完待續(xù)@邊通書
三文讀透指針語(yǔ)法【下篇】,將介紹回調(diào)函數(shù)及,使用回調(diào)函數(shù)實(shí)現(xiàn),用冒泡排序模擬實(shí)現(xiàn)qsort
敬請(qǐng)期待! 哈哈哈哈
同時(shí),鄙人才疏學(xué)淺,如果你發(fā)現(xiàn)有錯(cuò)誤或我理解不到位之處,或是建議,衷心希望大家能多多指教。最后,想得到就別等待趁現(xiàn)在去熱愛(ài),小伙伴們一起加油呀!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119015.html
摘要:本文重點(diǎn)字符指針指針數(shù)組數(shù)組指針數(shù)組傳參和指針傳參引在指針的初階已接觸過(guò)指針的概念,并介紹了如下內(nèi)容指針是個(gè)變量,用來(lái)存放地址,地址唯一標(biāo)識(shí)一塊內(nèi)存空間,所以地址也形象的被稱作指針。解析指針數(shù)組指針數(shù)組即,存放指針的數(shù)組。 ...
摘要:所以是數(shù)組指針,而是指針數(shù)組。因?yàn)閷?duì)一個(gè)二維數(shù)組,可以不知道有多少行,但是必須知道一行多少元素。當(dāng)二維數(shù)組數(shù)組名傳參,形參接收時(shí),數(shù)組的行可以省略,列不能省略,如果省略了列,我們就無(wú)法知道當(dāng)指針加減跳過(guò)幾個(gè)字節(jié)。 ...
摘要:本章節(jié)在此基礎(chǔ)上,對(duì)語(yǔ)言階段指針進(jìn)行更深層次的研究。數(shù)組指針的類型由數(shù)組類型決定,先找出數(shù)組的類型去掉名就是類型。相當(dāng)于數(shù)組指針?biāo)赶驍?shù)組的數(shù)組名。數(shù)組指針指向整個(gè)數(shù)組,將其看作二維數(shù)組并解引用得到一行的首元素,從而遍歷訪問(wèn)。 ...
摘要:釋放不完全導(dǎo)致內(nèi)存泄漏。既然把柔性數(shù)組放在動(dòng)態(tài)內(nèi)存管理一章,可見(jiàn)二者有必然的聯(lián)系。包含柔性數(shù)組的結(jié)構(gòu)用進(jìn)行動(dòng)態(tài)內(nèi)存分配,且分配的內(nèi)存應(yīng)大于結(jié)構(gòu)大小,以滿足柔性數(shù)組的預(yù)期。使用含柔性數(shù)組的結(jié)構(gòu)體,需配合以等動(dòng)態(tài)內(nèi)存分配函數(shù)。 ...
摘要:在位機(jī)器上,指針變量的大小為個(gè)字節(jié)。指針類型的強(qiáng)制類型轉(zhuǎn)換對(duì)指針變量進(jìn)行強(qiáng)制類型轉(zhuǎn)換的一般形式將保存的類型指針強(qiáng)制轉(zhuǎn)換為類型指針后賦值給,其中還是為,沒(méi)有改變。 前言 大家好,我是努力學(xué)習(xí)的少年,今天這篇文章是專門寫關(guān)于指針的知識(shí)點(diǎn),因?yàn)橹羔槂?nèi)容比較多,所以我將指針的這篇文章我將它分為...
閱讀 3952·2021-11-16 11:44
閱讀 3132·2021-11-12 10:36
閱讀 3385·2021-10-08 10:04
閱讀 1273·2021-09-03 10:29
閱讀 413·2019-08-30 13:50
閱讀 2626·2019-08-29 17:14
閱讀 1747·2019-08-29 15:32
閱讀 1092·2019-08-29 11:27