知識
不管是網站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
C語言 | 函數(shù)的基本使用和遞歸
發(fā)表時間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):54
文章目錄
- 函數(shù)是什么?
- 一、C語言中函數(shù)的分類
- 二、函數(shù)的參數(shù)
- 1.實際參數(shù)(實參)
- 2.形式參數(shù)(形參)
- 三、函數(shù)的調用
- 四、函數(shù)的聲明和定義
- 五、函數(shù)遞歸
函數(shù)是什么?
- 在計算機科學中,子程序是一個大型程序中的某部分代碼,由一個或多個語句塊組成。它負責完成某項特定任務,而且相較于其他代碼,具備相對的獨立性。
- 一般會有輸入參數(shù)并有返回值,提供對過程的封裝和細節(jié)的隱藏。這些代碼通常被集成為軟件庫。
一、C語言中函數(shù)的分類
1、庫函數(shù)
為了支持可移植性和提高程序的效率,C語言的基礎庫中提供了一系列庫函數(shù),滿足一些基礎功能,他們不是業(yè)務性的代碼,在開發(fā)的過程中每個程序員都可能用的到,方便程序員進行軟件開發(fā)。
C語言常用庫函數(shù):
- IO函數(shù)
- 字符串操作函數(shù)
- 字符操作函數(shù)
- 內存操作函數(shù)
- 時間/日期函數(shù)
- 數(shù)學函數(shù)
- 其他庫函數(shù)
使用庫函數(shù),必須包含#include對應的頭文件
庫函數(shù)學習:www.cplusplus.com
2、自定義函數(shù)
函數(shù)的組成:
ret_type fun_name(para1,*)
{
statement;
}
/*
ret_type:返回值類型
fun_name:函數(shù)名
para1,*:形參列表
*/
C語言默認返回值是整形,函數(shù)傳參要發(fā)生形參實例化,這個過程要發(fā)生值拷貝。(形參的實例化之后其實相當于實參的一份臨時拷貝)
二、函數(shù)的參數(shù)
1.實際參數(shù)(實參)
真實傳給函數(shù)的參數(shù),叫實參。實參可以是:常量,變量,表達式,函數(shù)等。無論實參是何種類型的量,在進行函數(shù)調用時,它們都必須有確定的值,以便把這些值傳給形參。
2.形式參數(shù)(形參)
形式參數(shù)是指函數(shù)名后括號中的變量,因為形式參數(shù)只有在函數(shù)在被調用的過程中才實例化(分配內存單元),所以叫形式參數(shù)。形式參數(shù)當函數(shù)調用完成之后就自動銷毀了。因此形式參數(shù)只在函數(shù)中有效。
函數(shù)傳參必定形成臨時變量,臨時變量的形成是在函數(shù)被調用時,但正式的代碼執(zhí)行之前。
例:寫一個函數(shù)可以交換兩個整形變量的內容
#include<stdio.h>
#include<windows.h>
//每調用一次,就會將num的值加1
void add(int *cp){
(*cp)++;
}
//交換兩個整形變量的內容
void Swap1(int x, int y){
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
void Swap2(int *px, int *py){
int tmp = 0;
tmp = *px;
*px = *py;
*py = tmp;
}
int main(){
//int count = 1;
//for (int i = 1; i <= 10; i++){
// add(&count);
// printf("%d\n", count);
//}
int num1 = 1;
int num2 = 2;
Swap1(num1, num2);
printf("Swap1:num1 = %d num2 = %d\n", num1, num2);
Swap2(&num1, &num2);
printf("Swap2:num1 = %d num2 = %d\n", num1, num2);
system("pause");
return 0;
}
結果:
Swap1:num1 = 1 num2 = 2
Swap2:num1 = 2 num2 = 1
請按任意鍵繼續(xù). . .
三、函數(shù)的調用
- 傳值調用
- 傳址調用
例:寫一個函數(shù),每調用一次這個函數(shù),就會將num的值增加1。
#include<stdio.h>
#include<windows.h>
//每調用一次,就會將num的值加1
void add(int *cp){
(*cp)++;
}
int main(){
int count = 1;
for (int i = 1; i <= 10; i++){
add(&count);
printf("%d\n", count);
}
system("pause");
return 0;
}