C語言函數(shù)的嵌套調(diào)用是什么呢?
需要明白的是,函數(shù)嵌套是一種語言特性,遞歸調(diào)用是一種邏輯思想。函數(shù)嵌套允許在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù),比如有三個(gè)函數(shù)funca(){funcb()}funcb(){funcc()}funcc(){cout。
嵌套原理的典型案例?
嵌套是指當(dāng)一個(gè)或多個(gè)表格、圖像或?qū)颖惶砑拥浆F(xiàn)有的表格、圖像或?qū)訒r(shí),或者當(dāng)兩個(gè)對(duì)象被組合時(shí),將一個(gè)對(duì)象嵌入到另一個(gè)對(duì)象中的方法。
在C語言中,所有的執(zhí)行語句只能出現(xiàn)在函數(shù)中。
同樣,函數(shù)調(diào)用只能出現(xiàn)在函數(shù)的函數(shù)體中。
調(diào)用函數(shù)有兩種函數(shù)嵌套和函數(shù)遞歸。
在C語言中,所有函數(shù)的定義都是并行獨(dú)立的,一個(gè)函數(shù)的定義不能包含另一個(gè)函數(shù)的定義,即不允許函數(shù)的嵌套定義。
但是函數(shù)調(diào)用可以通過用一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)來實(shí)現(xiàn),這就形成了函數(shù)的嵌套調(diào)用。
c語言不限制嵌套的數(shù)量和層數(shù),使我們可以自由合理地組織程序的模塊結(jié)構(gòu)。
示例:使用公式e11/(1!)1/(2!)1/(3!)1/(4!)...近似計(jì)算自然數(shù)e,近似度為n。
該算法分兩層執(zhí)行:
函數(shù)fac_v()計(jì)算1/(m!)(m1,2,3,,,n)
函數(shù)cal_e()計(jì)算11/(1!)1/(2!)1/(3!)1/(4!)...1/(n!)作為e的近似值。
函數(shù)cal_e()調(diào)用fac_v()得到1/(m!)(m1,2,3,,n),主函數(shù)main調(diào)用cal_v()得到自然數(shù)e的近似值。
該過程如下:
#includeltstdio.hgt
主()
{
doublecal_e(int)
intn
Printf(#34請(qǐng)輸入一個(gè)整數(shù):#34)
掃描f(#34%d#34,n)
printf(#34自然數(shù)e的近似值是%lf。
#34,cal_e(n))
}
doublecal_e(intn)
{
雙精度浮點(diǎn)型(整數(shù))
雙e1.0
while(n)efac_v(n-)
返回(e)
}
雙精度浮點(diǎn)型(整數(shù))
{
雙v1.0
而(m)v/m-
返回(v)
}
在上面的例子中,每個(gè)函數(shù)(包括主函數(shù))都非常簡(jiǎn)單明了,整個(gè)程序的執(zhí)行流程也非常清晰。