C語言學習13(函式的呼叫)

2022-03-28 10:56:26 字數 2317 閱讀 2693

函式的呼叫

//

函式的呼叫

/*單行語句的呼叫,如:max(x,y);

在表示式中呼叫,如:k=max(x,y);

*///

例項5-2:計算代數式1+1/2!+1/3!+.....+1/m!

#include"

stdio.h

"#include"

conio.h

"double jie(int m);

void main()

printf("

1+1/2!+1/3!+...+1/%d!的結果為:%f\n

",m,sum);

getch();

}double jie(int m)

return k;

}

//

函式引數的傳遞

//賦值呼叫

/*賦值呼叫時,函式將實參得知複製乙份,傳遞給形參,從而實現引數的傳遞,在程式執行過程中,形參的變化不會影響實參

*//*

需要注意的是,形參只在定義它的函式中存在,當從函式返回時,將釋放形參所佔的儲存空間

*//*

例項5-3 無效的數值交換

在這個例項中,我們將要驗證如下結論:在賦值呼叫中,形參的改變不會對實參產生影響。

*/#include"

stdio.h

"#include"

conio.h

"void fu(int x,int y);

main()

void fu(int x,int y)

//

傳址呼叫

/*語句格式:

void swap(int *m,int *n);

main()

void swap(int *m,int *n)

*//*

傳址呼叫時,函式將把實參的位址傳遞給形參,通過對位址的內容進行訪問,可以在被呼叫函式中對該位址內容進行呼叫和修改。

這是由於實參和形參都是指向同一儲存空間,因此對形參的內容進行改變時,實參的內容也會發生變化。

*///

例項5-4 傳址呼叫對實參的影響

#include"

stdio.h

"#include"

conio.h

"void swap(int *n,int *m);

main()

void swap(int *n,int *m)

//

函式的遞迴呼叫

//例項5-6 累加求和

//計算代數式:1+2+3+...+n的結果

#include"

stdio.h

"int add(int n);

void main()

int add(int n)

else

m=1;

return m;

}

//

函式的遞迴呼叫

//例項5-7:菲波那契數列

/*菲波那契數列是這樣的乙個數列:1,1,2,3,5,8....,n

表示式為: f(n)= f(n-1)+f(n-2) n>2

1 n=1 or 2

*/#include"

stdio.h

"#include"

conio.h

"int f(int m);

void main()

printf("

\n ");

getch();

}int f(int m)

else

n=f(m-1)+f(m-2);

return n;

}

//

例項5-7:菲波那契數列(拓展,用迴圈來做)

/*菲波那契數列是這樣的乙個數列:1,1,2,3,5,8....,n

*/#include"

stdio.h

"#include"

conio.h

"void main()

else

}printf("

%5d",m);

}printf("

\n");

getch();

}

C語言學習13(函式的說明)

函式的說明 函式的說明 在呼叫時,如果函式定義在呼叫之前,則可以直接呼叫,不需要再進行說明 如果函式定義在呼叫之後,則應先進行說明,才能正確呼叫。語句格式 型別 函式名 實參列表 在所有函式外部說明的函式,在說明語句之後的所有語句中都可呼叫 在某一函式內說明的函式,僅可在說明他的函式內部被呼叫 例項...

C語言學習筆記(2) 呼叫函式

1.1 函式呼叫的一般形式有三種 1 函式呼叫語句,如 printf star 2 函式表示式。3 函式引數。1.2函式呼叫的過程。1 未進行函式呼叫時,形參不占用儲存單元。2 將實參的值傳遞給形參。3 執行呼叫函式期間,形參已經被賦予了值。4 通過return語句將函式值帶回到主函式。5 呼叫過程...

小白c語言學習筆記1 3

1 為什麼要有資料型別?怎麼理解資料型別?用型別告訴計算機如何去詮釋或解釋資料 2 為什麼printf和scanf需要格式控制字元?因為他可以輸入不定長引數 stdarg.h 因此用格式控制字元去規定輸入的引數。p.s 回去記住格式控制字元 tip 5d中的數是對齊5位空格,為向左對齊,為向右對齊 ...