函式的呼叫
//函式的呼叫
/*單行語句的呼叫,如: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位空格,為向左對齊,為向右對齊 ...