首頁 > 常見問題 > 主體

函數的呼叫可以巢狀嗎

藏色散人
發布: 2023-02-07 15:35:24
原創
22320 人瀏覽過

函數的呼叫可以嵌套,但是函數的定義不可以嵌套,因為在C語言中函數的定義都是相互平行、相互獨立的,也就是說在函數定義時,函數體內不能包含另一個函數的定義,即函數不能巢狀定義,但可以巢狀呼叫。

函數的呼叫可以巢狀嗎

本教學操作環境:windows7系統、C18版、Dell G3電腦。

C語言中,函數的呼叫可以嵌套,但函數的定義不可以嵌套。

不能嵌套定義即是

function a(){
    function b(){
 }
}
登入後複製

在a函數裡面定義b函數是錯的,只能在a函數外部定義b函數像這樣

function a(){}
function b(){}
登入後複製

能嵌套調用,即是

function a (){
    b();
}
登入後複製

可以在a函數裡面調用已經定義的b函數。

函數不能巢狀定義是由於語法不支援造成在函數定義的內部不能定義函數。 C語言中函數的定義都是相互平行、相互獨立的,也就是說在函數定義時,函數體內不能包含另一個函數的定義,即函數不能嵌套定義,但可以巢狀呼叫。

什麼是函數的巢狀呼叫?

在呼叫一個函數的過程中,呼叫另外一個函數的過程

函數在C語言中,各個函數的定義都是相對獨立的存在,在函數的內部可以呼叫其他的函數(這裡面不包括main()函數)。這種呼叫過程叫做函數的巢狀(函數的定義部分不能巢狀)。

範例:

求兩個整數的最大公約數和最小公倍數。

問題分析

兩個數的最小公倍數=兩個數的乘積/兩個數的最大公約數。

所以key就是最大公約數.

最大公約數求法思維圖:

函數的呼叫可以巢狀嗎

程式碼實作

#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
#include"math.h"
int gcd(int a, int b)
{
int c;
if (a<b)//保证a的值大于b
{
c = b;
b = a;
a = c;
}
while (a != 0)
{
c = a%b;
b = a;
a = c;//把余数赋值给a,直到a=0时跳出循环,找到结果。
}
return b;
}
int lcd(int a, int b)
{
int c;
c = (a*b) / (gcd(a, b));//函数嵌套的过程
return c;
}
main()
{
int m, n;
printf("请输入两个数:");
scanf("%d,%d", &m, &n);
printf("%d和%d最大公约数为%d\n", m, n, gcd(m, n));
printf("最小公倍数为%d\n", lcd(m, n));
}
登入後複製

函數的實現:找出45和56兩個整數的最小公倍數和最大公因數。

函數的呼叫可以巢狀嗎

推薦:c影片教學

以上是函數的呼叫可以巢狀嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!