本文目錄一覽:
C語言中能否在一個自定義函數中調用另一個自定義函數?
可以調用。
C語言最基本的模塊為函數,任意函數都可以調用其它任意一個函數,包括函數本身。
1、自定義函數調用其它自定義函數的例子:
#include stdio.h
void fun1(int a)//自定義函數fun1。
{
printf(“%d\n”,a);
}
void fun2(int m, int n)//自定義函數fun2。
{
fun1(m);
fun1(n);//調用兩次另一個自定義函數。
}
int main()
{
fun2(2,3);//調用fun2.
}
在這個例子中,就是主函數調用自定義函數fun2,然後fun2調用另一個自定義函數fun1.
2、不僅可以調用其它自定義函數,還可以調用自己本身。
這種稱為遞歸。
以下是通過遞歸,計算1+2+3+…+n值的代碼:
#include stdio.h
int fun(int n)
{
if(n == 1) return 1;
return n+fun(n-1);//遞歸調用,返回和值。
}
int main()
{
printf(“%d\n”, fun(100));//計算1到100的和值。
return 0;
}
C語言中一個子函數怎麼調用另一個子函數的運算?
方法很多。
主要是要將不同類型傳遞給fun2處理。
最簡單float類型最大,fun2的參數類型就定義為float,然後運算結果返回float類型。在main函數用a3,b3,c3接收的時候強轉型。
另一種方法,把變量都轉換成一種類型傳遞。這裡用union共用體類型就比較適合。還方便擴展,如果想添加其他類型還可以在union里添加。
我這裡代碼就用第二種方法寫。
#include stdio.h
typedef union data{
char c;
int i;
float f;
}DA;
void fun1(void);
DA fun2(DA n1,DA n2,int nType);//nType=1:char類型。nType=2:int類型。nType=3:float類型。
int main()
{
fun1();
return 0;
}
void fun1(void)
{
char a1=1,a2=2;
int b1=100,b2=300;
float c1=5.1,c2=6.8;
DA n1,n2;
n1.c=a1,n2.c=a2;
char a3=fun2(n1,n2,1).c;
n1.i=b1,n2.i=b2;
int b3=fun2(n1,n2,2).i;
n1.f=c1,n2.f=c2;
float c3=fun2(n1,n2,3).f;
printf(“a3=%c\nb3=%d\nc3=%.2f\n”,a3,b3,c3);
}
DA fun2(DA n1,DA n2,int nType)//nType=1:char類型。nType=2:int類型。nType=3:float類型。
{
DA n3;
switch(nType)
{
case 1:n3.c=n1.c+n2.c;break;
case 2:n3.i=n1.i+n2.i;break;
case 3:n3.f=n1.f+n2.f;break;
}
return n3;
}
c語言在一個函數內部調用另一個函數的調用方法稱為___?
在一個函數內部調用另一個函數的調用方式稱為嵌套調用,嵌套調用就是某個函數調用另外一個函數(即函數嵌套允許在一個函數中調用另外一個函數)。
# 函數的嵌套調用:在一個函數內部調用另一個函數
def fn1():
pass
def fn2():
fn1() # 函數的嵌套調用
def fn3():
fn2() # 函數的嵌套調用
fn3()
擴展資料:
嵌套調用執行過程:
1、執行main函數的開頭部分;
2、遇函數調用語句,調用函數a,流程轉去a函數;
3、執行a函數的開頭部分;
4、遇函數調用語句,調用函數b,流程轉去函數b;
5、執行b函數,如果再無其他嵌套的函數,則完成b函數的全部操作;
6、返回到a函數中調用b函數的位置;
7、繼續執行a函數中尚未執行的部分,直到a函數結束;
8、返回main函數中調用a函數的位置;
9、繼續執行main函數的剩餘部分直到結束。
參考資料來源:
百度百科-嵌套調用
C語言如何調用函數
C語言中,函數調用的一般形式為:
函數名(實際參數表)
對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變量或其它構造類型數據及表達式。各實參之間用逗號分隔。
#includestdio.h
int fun(int x, int y); // 函數聲明,如果函數寫在被調用處之前,可以不用聲明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
// 自定義函數fun
int fun(int x, int y) // 函數首部
{ // {}中的語言為函數體
return xy ? x : y; // 返回x和y中較大的一個數
}
擴展資料
C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。但是C語言允許在一個函數的定義中出現對另一個函數的調用。
這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。這與其它語言的子程序嵌套的情形是類似的。其關係可表示如圖。
圖表示了兩層嵌套的情形。其執行過程是:執行main函數中調用a函數的語句時,即轉去執行a函數,在a函數中調用b 函數時,又轉去執行b函數,b函數執行完畢返回a函數的斷點繼續執行,a函數執行完畢返回main函數的斷點繼續執行。
參考資料:函數調用_百度百科
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/199080.html