国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語言】函數(shù)的定義、傳參與調(diào)用(二)

這篇具有很好參考價值的文章主要介紹了【C語言】函數(shù)的定義、傳參與調(diào)用(二)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


??個人主頁??

?個人專欄——C語言初步學(xué)習(xí)?

??點擊關(guān)注??一起學(xué)習(xí)C語言????


?目錄

導(dǎo)讀:

1.?函數(shù)的嵌套調(diào)用

1.1?什么是嵌套調(diào)用

1.2 基礎(chǔ)實現(xiàn)

1.3 調(diào)用流程解析

?2. 函數(shù)的鏈?zhǔn)皆L問

2.1 什么是鏈?zhǔn)皆L問

?2.2 基礎(chǔ)實現(xiàn)

3.?函數(shù)遞歸

3.1?什么是遞歸

3.2 遞歸的兩個必要條件?

3.3 用遞歸方法求n!

4. 小結(jié)練習(xí)?


導(dǎo)讀:

在前面,我們了解了第一部分的函數(shù)的定義、傳參與調(diào)用(一),在這里我們基本了解了該怎樣定義和使用一個函數(shù)。

現(xiàn)在我們來進一步的學(xué)習(xí)函數(shù)的嵌套和遞歸??

1.?函數(shù)的嵌套調(diào)用

1.1?什么是嵌套調(diào)用

C語言的函數(shù)定義是互相平行、獨立的,也就是說,在定義函數(shù)時,一個函數(shù)內(nèi)不能在定義另一個函數(shù),即不能嵌套定義,但可以嵌套調(diào)用函數(shù)。

函數(shù)的嵌套調(diào)用指在一個函數(shù)中調(diào)用另一個函數(shù),而被調(diào)用的函數(shù)又可以是其他函數(shù)的參數(shù)或返回值。這種嵌套調(diào)用的方式可以讓程序更加靈活和高效。

1.2 基礎(chǔ)實現(xiàn)

在調(diào)用函數(shù)時,需要注意以下幾點:

  1. 函數(shù)名必須與函數(shù)定義的名稱一致,包括大小寫。
  2. 調(diào)用函數(shù)時,必須傳遞該函數(shù)所需要的參數(shù),參數(shù)的順序和類型必須與函數(shù)定義時一致。
  3. 如果函數(shù)沒有參數(shù),則在調(diào)用函數(shù)時應(yīng)該留空參數(shù)列表

例如:

void B()
{
	printf("Hello, World!\n");
}
void A()
{
	B();
}
int main()
{
	A();
	return 0;
}

【C語言】函數(shù)的定義、傳參與調(diào)用(二),c語言初步學(xué)習(xí),c語言,開發(fā)語言,函數(shù)??

1.3 調(diào)用流程解析

【C語言】函數(shù)的定義、傳參與調(diào)用(二),c語言初步學(xué)習(xí),c語言,開發(fā)語言,函數(shù)?

①執(zhí)行main函數(shù)的開頭部分

②遇函數(shù)調(diào)用語句,調(diào)用函數(shù)A,流程轉(zhuǎn)去A函數(shù)

③執(zhí)行A函數(shù)的開頭部分

④遇函數(shù)調(diào)用語句,調(diào)用函數(shù)B,流程轉(zhuǎn)去B函數(shù)

⑤執(zhí)行B函數(shù),如果再無其他嵌套的函數(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é)束

?2. 函數(shù)的鏈?zhǔn)皆L問

2.1 什么是鏈?zhǔn)皆L問

在C語言中,可以使用函數(shù)的鏈?zhǔn)皆L問來簡化對多個函數(shù)的調(diào)用過程。

所謂鏈?zhǔn)皆L問,就是通過函數(shù)返回值的方式,實現(xiàn)對多個函數(shù)的連續(xù)調(diào)用。具體來說,就是將一個函數(shù)的返回值作為另一個函數(shù)的輸入?yún)?shù),從而實現(xiàn)多個函數(shù)的順序調(diào)用。

?2.2 基礎(chǔ)實現(xiàn)

int add(int a, int b) 
{
    return a + b;
}
int multiply(int a, int b) 
{
    return a * b;
}
int main() 
{
    int x = 1;
    int y = 2;
    int z = 0;
    z = multiply(add(x, y), y);
    printf("(%d + %d) * %d = %d\n", x, y, y, z);
    return 0;
}

【C語言】函數(shù)的定義、傳參與調(diào)用(二),c語言初步學(xué)習(xí),c語言,開發(fā)語言,函數(shù)??

解析:

我們定義了兩個函數(shù)add和multiply。

在main函數(shù)中,我們首先調(diào)用add函數(shù),計算出x和y的和,然后將結(jié)果作為input傳遞給multiply函數(shù),計算出input和y的乘積,最后將乘積的結(jié)果賦值給變量z。由于add函數(shù)返回值的類型和multiply函數(shù)的輸入?yún)?shù)類型是一致的,所以我們可以直接將add函數(shù)的返回值作為multiply函數(shù)的輸入?yún)?shù),從而實現(xiàn)了鏈?zhǔn)皆L問。

3.?函數(shù)遞歸

3.1?什么是遞歸

程序調(diào)用自身的編程技巧稱為遞歸( recursion)

遞歸做為一種算法在程序設(shè)計語言中廣泛應(yīng)用。

一個過程或函數(shù)在其定義或說明中有直接或間接 調(diào)用自身的 一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解, 遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算,大大地減少了程序的代碼量。

遞歸的主要思考方式在于:把大事化小

3.2 遞歸的兩個必要條件?

  • 存在限制條件,當(dāng)滿足這個限制條件的時候,遞歸便不再繼續(xù)。
  • 每次遞歸調(diào)用之后越來越接近這個限制條件。

3.3 用遞歸方法求n!

int factorial(int n) 
{
    if (n == 0 || n == 1) 
    {
        return 1;  // n為0或1時,階乘為1
    }
    else 
    {
        return n * factorial(n - 1);  // 遞歸調(diào)用自身,計算n-1的階乘
    }
}
int main() 
{
    int n = 0;
    scanf("%d", &n);
    int res = factorial(n);  // 計算n的階乘
    printf("%d! = %d\n", n, res);
    return 0;
}

【C語言】函數(shù)的定義、傳參與調(diào)用(二),c語言初步學(xué)習(xí),c語言,開發(fā)語言,函數(shù)

解析:

在上面的示例中,我們定義了一個遞歸函數(shù)factorial,用來計算n的階乘。

當(dāng)n為0時,階乘為1;

否則,調(diào)用自身來計算n-1的階乘,然后將結(jié)果與n相乘。

在main函數(shù)中,我們調(diào)用factorial函數(shù),計算出5的階乘,并打印計算結(jié)果。

【C語言】函數(shù)的定義、傳參與調(diào)用(二),c語言初步學(xué)習(xí),c語言,開發(fā)語言,函數(shù)

4. 小結(jié)練習(xí)?

函數(shù)的調(diào)用部分到這里基本就結(jié)束了,在閑暇實踐感興趣的小伙伴們可以做一下下面的小練習(xí)

1. 輸入4個整數(shù),找出其中最大的數(shù)。(嵌套調(diào)用)

2.?接受一個整型值(無符號),按照順序打印它的每一位。(遞歸)

例如: 輸入:1234,輸出 1 2 3 4.?文章來源地址http://www.zghlxwxcb.cn/news/detail-716001.html

到了這里,關(guān)于【C語言】函數(shù)的定義、傳參與調(diào)用(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包