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