void CallMyFun(FunType fp,int x);是一個(gè)包含函數(shù)指針的函數(shù)!
安次網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
fp只是函數(shù)指針的名稱,是 CallMyFun函數(shù)的形參,這個(gè)名稱你可以隨便取的
當(dāng)調(diào)用CallMyFun(MyFun1,10);//假設(shè)調(diào)用此變量時(shí),
fp指代的就是MyFun1函數(shù),而MyFun1的參數(shù)哪里來(lái)?就是通過(guò)CallMyFun的第2個(gè)參數(shù)傳遞進(jìn)來(lái)的,這里是10
所以運(yùn)行CallMyFun(MyFun1,10);函數(shù),其實(shí)就是運(yùn)行了call MyFun1(10)
所以運(yùn)行CallMyFun(MyFun2,20);函數(shù),其實(shí)就是運(yùn)行了call MyFun2(20)
所以fp(x)指代的是一個(gè)函數(shù),如果要輸出他的結(jié)果,那在定義MyFun1,MyFun2時(shí),函數(shù)就需要有返回值,而不能用void
在C語(yǔ)言中,函數(shù)的使用與編程是密不可分的,下面給大家說(shuō)說(shuō)C語(yǔ)言函數(shù)的運(yùn)用和調(diào)用?
01
第一步是聲明一個(gè)函數(shù)。 有兩種類型的函數(shù),一種是返回值,前者是用int float double char定義的,如int f(int n); 前面的int是返回值類型。
02
參數(shù)是函數(shù)調(diào)用需要傳遞的參數(shù)。 每個(gè)參數(shù)由一個(gè)數(shù)據(jù)類型和一個(gè)標(biāo)識(shí)符名稱組成,如變量聲明(例如,int x)。
03
參數(shù)只在函數(shù)的范圍內(nèi)有效,并且可以以與函數(shù)中其他變量相同的方式使用。 它們?cè)试S函數(shù)在調(diào)用時(shí)傳遞參數(shù),而不同的參數(shù)由逗號(hào)分隔。
04
聲明是函數(shù)的內(nèi)容。 它可以是一條指令或一條指令。 如果它是一組指令,則語(yǔ)句塊必須包含在大括號(hào){}中,這是我們最常見(jiàn)的情況。
1、值傳遞,創(chuàng)建變量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)?
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6;
Exchg1 (a,b) ;
printf(“a=%d,b=%d/n”,a,b)
}
2、地址傳遞,相當(dāng)于建立了px和py兩個(gè)指向整型的指針,其值分別為a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px;
*px=*py;
*py=tmp;
print(“*px=%d,*py=%d/n”,*px,*py);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
3、引用傳遞,x和y直接引用a和b,對(duì)a和b操作,相當(dāng)于給a、b起了別名x、y
Exchg2(int x, int y)
{
int tmp=x;
x=y;
y=tmp;
print(“x=%d,y=%d/n”,x,y);
}
main()
{
int a=4;
int b=6;
Exchg2(a,b);
Print(“a=%d,b=%d/n”, a, b);
}
擴(kuò)展資料:
printf用法:
printf()函數(shù)的調(diào)用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符,這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以"%"開始,后跟一個(gè)或幾個(gè)規(guī)定字符,用來(lái)確定輸出內(nèi)容格式。
參量表是需要輸出的一系列參數(shù),其個(gè)數(shù)必須與格式化字符串所說(shuō)明的輸出參數(shù)個(gè)數(shù)一樣多,各參數(shù)之間用","分開,且順序一一對(duì)應(yīng),否則將會(huì)出現(xiàn)意想不到的錯(cuò)誤。
比如:
int a=1234;
printf("a=%d\n",a);
輸出結(jié)果為a=1234。