char *match (char*s,char ch1,char ch2)
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)大豐,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108
函數(shù)各部分的含義:
第一個(gè)char,一般是代表函數(shù)的返回值是一個(gè)字符。但是它后面有一個(gè)*,應(yīng)該把char和*連起來(lái)看,就是char*了。
那么,第一個(gè)就是char*,代表函數(shù)的返回值是一個(gè)字符指針(地址)。
match是函數(shù)的名字。
括號(hào)內(nèi)是函數(shù)的參數(shù),多個(gè)參數(shù)用逗號(hào)分隔。本例共有3個(gè)參數(shù):char*s,char ch1,char ch2,第一個(gè)是s,類(lèi)型為char*型(字符指針型),后兩個(gè)ch1、ch2都是char型(字符型)。
到這兒,你就知道去掉*match前的*為什么就不對(duì)了。
另外,括號(hào)里參數(shù)類(lèi)型(如包含指針)跟函數(shù)返回值的類(lèi)型無(wú)關(guān)。函數(shù)名前加不加*只與函數(shù)返回值的類(lèi)型有關(guān)。
這樣說(shuō)吧:
有2個(gè)箱子,編號(hào)分別是a,b,a裝了一個(gè)蘋(píng)果,b裝了一個(gè)梨子,
有2張紙,編號(hào)分別是p,q,p紙上寫(xiě)著a,q紙上寫(xiě)著b。
1、現(xiàn)在我準(zhǔn)備一張白紙,編號(hào)為t,把p紙上寫(xiě)的a抄到t上,然后擦掉p紙上的a,寫(xiě)成b;把q紙上的b摖掉,然后把t紙上寫(xiě)的a抄到q紙上,那蘋(píng)果和梨子交換了嗎?
2、現(xiàn)在我準(zhǔn)備一個(gè)空箱子,編號(hào)為t,根據(jù)p紙上寫(xiě)的箱子編號(hào)a,把a(bǔ)箱子中的東西取出并放到箱子t,根據(jù)q紙上寫(xiě)的箱子編號(hào)b,把b箱子中的東西取出并放到p紙上寫(xiě)的箱子a中,然后把t箱子中的東西取出放到q紙上寫(xiě)的箱子b中,蘋(píng)果和梨子交換了嗎?
01
指針函數(shù)通常是指函數(shù)返回值是指針的一類(lèi)函數(shù),如圖所示。
02
函數(shù)指針是指指向某個(gè)具體函數(shù)的指針變量,在程序設(shè)計(jì)時(shí)可以用來(lái)調(diào)用某個(gè)特定函數(shù)或者做某個(gè)函數(shù)的參數(shù)。其形式一般如圖:
03
指針函數(shù)與函數(shù)指針本質(zhì)上的區(qū)別是,指針函數(shù)是一個(gè)帶指針的函數(shù),總的來(lái)說(shuō)還是一個(gè)函數(shù),如圖就是一個(gè)帶*name指針的函數(shù)
04
函數(shù)指針是指向函數(shù)的指針變量,本質(zhì)上還是一個(gè)指針,其格式如下,可以看到和指針函數(shù)的格式非常像,所以一定要用心留意。
/*
函數(shù)指針,關(guān)鍵是后面兩個(gè)字“指針”,顧名思義,是一個(gè)指向函數(shù)的指針
原理:函數(shù)在創(chuàng)建好了后,函數(shù)的代碼會(huì)在內(nèi)存中占有個(gè)位置,這時(shí)我們創(chuàng)造一個(gè)指針來(lái)指向這個(gè)地址,這個(gè)指針就叫函數(shù)指針
函數(shù)指針不可以移動(dòng),想要移動(dòng)指針的位置來(lái)指向函數(shù)的下一個(gè)指令的想法是錯(cuò)誤的
函數(shù)指針的要求,
1,首先這個(gè)指針,要和函數(shù)的返回類(lèi)型一樣
2,指針的*和名字,要用小括號(hào)括起來(lái)//不括起來(lái)就是指針函數(shù)了,意思就變成,函數(shù)返回一個(gè)指針了
3,最右邊的小括號(hào)里形參位置的類(lèi)型,形參的個(gè)數(shù),也要和函數(shù)定義時(shí)的形參一致,只要類(lèi)型,不要形參名即可,
但是加上形參名也可以,沒(méi)毛病,看上去也更清晰
*/
#include
void swapchar(char *a, char *b)
{
char t;
t = *a;
*a = *b;
*b = t;
}
void swapchar2(char * a2, char * b2)
{
printf("this is swapchar2");
}
int main(void)
{
char chf = 'a', chg = 'j';
void(*p)(char * a, char * b);//定義函數(shù)指針、形參名字a、b可有可無(wú),但有的話(huà)看上去更清晰,只要函數(shù)定義的類(lèi)型、參數(shù)類(lèi)型、以及參數(shù)個(gè)數(shù),與這個(gè)指針一致,那么這個(gè)指針p,就可以指向它
p = swapchar;//p指針接管swapchar函數(shù),只要給函數(shù)名字,就可以給過(guò)去了
printf("chf=%c,chg=%c ", chf, chg);
p(chf, chg);
printf("chf=%c,chg=%c ", chf, chg);
p = swapchar2;//這里把swapchar2函數(shù)的地址,給了p,這時(shí)p從swapchar地址,轉(zhuǎn)移到了swapchar2這里。
p(chf,chg);
return 0;
}
分享文章:c語(yǔ)言使用指針函數(shù) c語(yǔ)言指針函數(shù)傳參
鏈接URL:http://jinyejixie.com/article36/dosddpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、虛擬主機(jī)、全網(wǎng)營(yíng)銷(xiāo)推廣、云服務(wù)器、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)