欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

函數(shù)可以嵌套定義但不能嵌套調(diào)用嗎

這篇文章給大家分享的是有關(guān)函數(shù)可以嵌套定義但不能嵌套調(diào)用嗎的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

10年積累的做網(wǎng)站、網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有魚臺免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

錯,函數(shù)可以嵌套調(diào)用但不可以嵌套定義。在C語言中,所有的函數(shù)都是平行的,即在定義函數(shù)時是互相獨立的,一個函數(shù)并不從屬于另一個函數(shù),即函數(shù)不能嵌套定義,但可以互相調(diào)用,但不能調(diào)用main函數(shù)。

錯,函數(shù)可以嵌套調(diào)用但不可以嵌套定義。

C語言 函數(shù)

函數(shù)是一段可以重復(fù)使用的代碼,用來獨立地完成某個功能,它可以接收用戶傳遞的數(shù)據(jù),也可以不接收。接收用戶數(shù)據(jù)的函數(shù)在定義時要指明參數(shù),不接收用戶數(shù)據(jù)的不需要指明,根據(jù)這一點可以將函數(shù)分為有參函數(shù)和無參函數(shù)。

將代碼段封裝成函數(shù)的過程叫做函數(shù)定義。

函數(shù)的定義

如果函數(shù)不接收用戶傳遞的數(shù)據(jù),那么定義時可以不帶參數(shù)。如下所示:

dataType  functionName(){
    //body
}

如果函數(shù)需要接收用戶傳遞的數(shù)據(jù),那么定義時就要帶上參數(shù)。如下所示:

dataType  functionName( dataType1 param1, dataType2 param2 ... ){
    //body
}
  • dataType 是返回值類型,它可以是C語言中的任意數(shù)據(jù)類型,例如 int、float、char 等。

  • functionName 是函數(shù)名,它是標(biāo)識符的一種,命名規(guī)則和標(biāo)識符相同。函數(shù)名后面的括號( )不能少。

  • dataType1 param1, dataType2 param2 ...是參數(shù)列表。函數(shù)可以只有一個參數(shù),也可以有多個,多個參數(shù)之間由,分隔。參數(shù)本質(zhì)上也是變量,定義時要指明類型和名稱。與無參函數(shù)的定義相比,有參函數(shù)的定義僅僅是多了一個參數(shù)列表。

  • body 是函數(shù)體,它是函數(shù)需要執(zhí)行的代碼,是函數(shù)的主體部分。即使只有一個語句,函數(shù)體也要由{ }包圍。

  • 如果有返回值,在函數(shù)體中使用 return 語句返回。return 出來的數(shù)據(jù)的類型要和 dataType 一樣。

    return是C語言中的一個關(guān)鍵字,只能用在函數(shù)中,用來返回處理結(jié)果。

示例:

#include <stdio.h>
int sum(){
    int i, sum=0;
    for(i=1; i<=100; i++){
        sum+=i;
    }
    return sum;
}
int main(){
    int a = sum();
    printf("The sum is %d\n", a);
    return 0;
}

運行結(jié)果:

The sum is 5050

函數(shù)不能嵌套定義,main 也是一個函數(shù)定義,所以要將 sum 放在 main 外面。函數(shù)必須先定義后使用,所以 sum 要放在 main 前面。

注意:main 是函數(shù)定義,不是函數(shù)調(diào)用。當(dāng)可執(zhí)行文件加載到內(nèi)存后,系統(tǒng)從 main 函數(shù)開始執(zhí)行,也就是說,系統(tǒng)會調(diào)用我們定義的 main 函數(shù)。

教程

函數(shù)調(diào)用

所謂函數(shù)調(diào)用(Function Call),就是使用已經(jīng)定義好的函數(shù)。函數(shù)調(diào)用的一般形式為:

functionName(param1, param2, param3 ...);

functionName 是函數(shù)名稱,param1, param2, param3 ...是實參列表。實參可以是常數(shù)、變量、表達(dá)式等,多個實參用逗號,分隔。

在C語言中,函數(shù)調(diào)用的方式有多種,例如:

//函數(shù)作為表達(dá)式中的一項出現(xiàn)在表達(dá)式中
z = max(x, y);
m = n + max(x, y);
//函數(shù)作為一個單獨的語句
printf("%d", a);
scanf("%d", &b);
//函數(shù)作為調(diào)用另一個函數(shù)時的實參
printf( "%d", max(x, y) );
total( max(x, y), min(m, n) );

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

函數(shù)不能嵌套定義,但可以嵌套調(diào)用,也就是在一個函數(shù)的定義或調(diào)用過程中允許出現(xiàn)對另外一個函數(shù)的調(diào)用。

【示例】計算sum = 1! + 2! + 3! + ... + (n-1)! + n!

分析:可以編寫兩個函數(shù),一個用來計算階乘,一個用來計算累加的和。

#include <stdio.h>
//求階乘
long factorial(int n){
    int i;
    long result=1;
    for(i=1; i<=n; i++){
        result *= i;
    }
    return result;
}
// 求累加的和
long sum(long n){
    int i;
    long result = 0;
    for(i=1; i<=n; i++){
        //在定義過程中出現(xiàn)嵌套調(diào)用
        result += factorial(i);
    }
    return result;
}
int main(){
    printf("1!+2!+...+9!+10! = %ld\n", sum(10));  //在調(diào)用過程中出現(xiàn)嵌套調(diào)用
    return 0;
}

運行結(jié)果:

1!+2!+...+9!+10! = 4037913

sum() 的定義中出現(xiàn)了對 factorial() 的調(diào)用,printf() 的調(diào)用過程中出現(xiàn)了對 sum() 的調(diào)用,而 printf() 又被 main() 調(diào)用,它們整體調(diào)用關(guān)系為:

main() --> printf() --> sum() --> factorial()

如果一個函數(shù) A() 在定義或調(diào)用過程中出現(xiàn)了對另外一個函數(shù) B() 的調(diào)用,那么我們就稱 A() 為主調(diào)函數(shù)或主函數(shù),稱 B() 為被調(diào)函數(shù)。

當(dāng)主調(diào)函數(shù)遇到被調(diào)函數(shù)時,主調(diào)函數(shù)會暫停,CPU 轉(zhuǎn)而執(zhí)行被調(diào)函數(shù)的代碼;被調(diào)函數(shù)執(zhí)行完畢后再返回主調(diào)函數(shù),主調(diào)函數(shù)根據(jù)剛才的狀態(tài)繼續(xù)往下執(zhí)行。

一個C語言程序的執(zhí)行過程可以認(rèn)為是多個函數(shù)之間的相互調(diào)用過程,它們形成了一個或簡單或復(fù)雜的調(diào)用鏈條。這個鏈條的起點是 main(),終點也是 main()。當(dāng) main() 調(diào)用完了所有的函數(shù),它會返回一個值(例如return 0;)來結(jié)束自己的生命,從而結(jié)束整個程序。

函數(shù)是一個可以重復(fù)使用的代碼塊,CPU 會一條一條地挨著執(zhí)行其中的代碼,當(dāng)遇到函數(shù)調(diào)用時,CPU 首先要記錄下當(dāng)前代碼塊中下一條代碼的地址(假設(shè)地址為 0X1000),然后跳轉(zhuǎn)到另外一個代碼塊,執(zhí)行完畢后再回來繼續(xù)執(zhí)行 0X1000 處的代碼。整個過程相當(dāng)于 CPU 開了一個小差,暫時放下手中的工作去做點別的事情,做完了再繼續(xù)剛才的工作。

感謝各位的閱讀!關(guān)于“函數(shù)可以嵌套定義但不能嵌套調(diào)用嗎”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)站名稱:函數(shù)可以嵌套定義但不能嵌套調(diào)用嗎
網(wǎng)頁路徑:http://aaarwkj.com/article4/igcdoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、外貿(mào)建站、網(wǎng)頁設(shè)計公司、營銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
日本2区3区视频在线观看| av中文字幕一区二区三区| 日韩不卡的一区免费视频| 国产剧情av一区在线观看| 自偷自拍在线免费观看| 日韩精品在线免费观看了| 99久久精品人妻一区| 欧美视频综合一级91| 国产在线成年人免费观看| 哈昂~不要啊在线观看| 日韩中文字幕视频久久| 亚洲欧美另类熟女丝袜| 偷拍盗摄一区二区三区| 99亚洲伊人久久精品影院| 国产精彩在线视频成人在线 | 中出亚洲精品日韩在线视频 | 国产日韩精品在线视频| 四虎影视国产精品久久| 日本亚洲一级中文字幕| 成人性生交大片免费看中文| 亚洲一区二区三区熟女少妇| 日本高清区一区二区三区四区五区| 国产精品国产成人生活片| 亚洲欧美中文日韩一区| 精品人妻一区二区三区不卡| 夜夜嗨av一区二区三区| 亚洲熟女熟妇另类中文| 久久久国产精品免费看| 国产成人久久精品二区三区| 免费在线成人av观看| 国产高清亚洲精品视频| 一区二区三区欧美黑人| 97在线观看全部视频| 99亚洲综合一区二区三区| 国语精品对白交换日韩| 久久东京热日韩精品一区| 日韩中字伦理熟妇人妻| 免费在线观看做性小视频| 日韩精品视频在线观看| 欧美日韩国产综合精品亚洲| 国产亚洲精品视频免费|