C語(yǔ)言的函數(shù)定義是互相平行、獨(dú)立的,也就是說(shuō),在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能再定義另一個(gè)函數(shù),即不能嵌套定義,但可以嵌套調(diào)用函數(shù),即,在調(diào)用一個(gè)函數(shù)的過(guò)程中,又調(diào)用另一個(gè)函數(shù)。
如下圖所示:表示的是兩層嵌套(連main一共三層函數(shù))。
其執(zhí)行過(guò)程時(shí):
①執(zhí)行main函數(shù)的開(kāi)頭部分
②遇到函數(shù)調(diào)用語(yǔ)句,調(diào)用函數(shù)a,流程轉(zhuǎn)去函數(shù)a
③執(zhí)行a函數(shù)的開(kāi)頭部分
④遇到函數(shù)調(diào)用語(yǔ)句,調(diào)用函數(shù)b,流程轉(zhuǎn)去函數(shù)b
⑤執(zhí)行b函數(shù),如果再無(wú)其他嵌套的函數(shù),則完成b函數(shù)的全部操作
⑥返回到a函數(shù)中調(diào)用b函數(shù)的位置
⑦繼續(xù)執(zhí)行a函數(shù)中尚未執(zhí)行的部分,直到a函數(shù)結(jié)束
⑧返回main函數(shù)中調(diào)用a函數(shù)的位置
⑨繼續(xù)執(zhí)行main函數(shù)中剩余部分直到結(jié)束
【例題】
輸入4個(gè)整數(shù),找出其中最大的數(shù)。用函數(shù)的嵌套調(diào)用來(lái)處理。
【思路】
定義函數(shù)Max4,用來(lái)實(shí)現(xiàn)找出4個(gè)數(shù)中的最大者這個(gè)功能。定義Max2函數(shù),用來(lái)實(shí)現(xiàn)找出兩個(gè)數(shù)中的大者。在main函數(shù)中調(diào)用Max4函數(shù),然后在Max4中調(diào)用另一個(gè)函數(shù)Max2。在Max4中通過(guò)多次調(diào)用Max2函數(shù),可以找出4個(gè)數(shù)中的大者,然后把它作為函數(shù)值返回main函數(shù),在main函數(shù)中輸出結(jié)果。
【代碼實(shí)現(xiàn)】文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-456753.html
int Max2(int x,int y)
{
return(x>y?x:y);
}
int Max4(int w,int x,int y,int z)//定義Max4函數(shù)
{
int Max2(int x,int y);//對(duì)Max2的函數(shù)聲明
int m;
m=Max2(w,x);//調(diào)用Max2函數(shù),得到w,x兩個(gè)數(shù)中的大數(shù)放在m中
m=Max2(m,y);//調(diào)用Max2函數(shù),得到w,x,y三個(gè)數(shù)中的大數(shù)放在m中
m=Max2(m,z);//調(diào)用Max2函數(shù),得到w,x,y,z四個(gè)數(shù)中的大數(shù)放在m中
return m;//把m作為函數(shù)值帶回main函數(shù)
}
int main()
{
int a,b,c,d;
printf("從鍵盤(pán)輸入4個(gè)整數(shù):\n");//提示輸入4個(gè)數(shù)
scanf("%d%d%d%d",&a,&b,&c,&d);//輸入4個(gè)數(shù)
int m;
m=Max4(a,b,c,d);//調(diào)用Max4函數(shù),得到4個(gè)數(shù)中最大者
printf("4個(gè)數(shù)中最大的數(shù)為:%d",m);//輸出4個(gè)數(shù)中最大者
return 0;
}
【結(jié)果】文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-456753.html
到了這里,關(guān)于C語(yǔ)言 函數(shù)的嵌套調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!