c語言基礎筆記(9 c語言當中的函式)

2021-10-06 23:53:10 字數 2257 閱讀 4225

9.1 函式的原型和呼叫

在使用乙個函式前必須定義或者宣告函式。

9.2 函式的形參與實參

在呼叫函式的時候,函式大多數都有引數,主調函式和被呼叫函式之間需要傳遞資料。

在定義函式時函式名後面括弧中的變數名稱為「形式引數」,簡稱形參。在呼叫函式時,函式名後面括號中的變數或表示式稱為「實際引數」,簡稱實參。

1 形參在未出現函式呼叫時,他們並不占用記憶體單元,只有在發生函式呼叫的時候形參才被分配記憶體,函式呼叫完成後,形參所佔的記憶體被釋放;

2 實參可以是變數,常量或者表示式;

3 在定義函式時,一定要指定形參的資料型別;

4 形參與實參的資料型別一定要可相容;

5 在c語言中,實參與形參的資料傳遞是「值傳遞」,即單向傳遞,只由實參傳遞給形參,而不能由形參傳遞給實參。

如果函式的引數是個陣列,那麼是可以通過形參修改實參的值的。

9.3 函式的返回型別與返回值

1 函式的返回值通過函式中的return獲得,如果函式的返回值為void可以不需要return語句;

2 函式return語句中的返回值資料型別應該與函式定義時相同;

3 如果函式中沒有return語句,那麼函式將返回乙個不確定的值。

如果c語言乙個函式沒有明確的標明函式的返回型別,那麼函式的返回型別就是int;

如果乙個函式沒有返回值,那麼函式的返回型別是void;

9.4 main函式與exit函式與函式的return語句

exit(0); //在子函式中呼叫exit同樣代表程式終止,但在子函式中呼叫return只是子函式終止,程式正常執行。

exit是c語言的庫函式,呼叫exit的結果就是程式終止,在main函式中呼叫exit與呼叫return是一樣的;

main函式return代表程式終止。

9.5 多個源**檔案程式的編譯

9.5.1 標頭檔案的使用

如果把main函式放在第乙個檔案中,而把自定義函式放在第二個檔案中,那麼就需要在第乙個檔案中宣告函式原型。

如果把函式原型包含在乙個標頭檔案裡,那麼就不必每次使用函式的時候都宣告其原型了。把函式宣告放入標頭檔案是很好的習慣。

9.5.2 #include與#define的意義

#include就是簡單的檔案內容替換

#define就是簡單的檔案替換而已

9.5.3 #ifndef 與#endif

在標頭檔案.h中,

#ifndef 巨集名

#define 巨集名//具體巨集的名字是自定義的

//函式的宣告

#endif

作用:防止多次include的同乙個標頭檔案的時候,重複預編譯標頭檔案內容

防止標頭檔案被重複包含

#ifndef的意思就是條件預編譯,如果#ifndef後面的條件成立,那麼就預編譯從#ifndef開始到#endif之間的**,否則不會去預編譯這段**。

在#ifndef中的巨集,一定要大寫和下劃線,必要的時候加數字,目的是為了避免和其他標頭檔案中的巨集名字衝突。

#ifdef,#ifndef叫條件編譯語句;

#ifdef 巨集,如果巨集被定義了,那麼編譯語句;

#ifndef 巨集,如果巨集被定義了,那麼就不編譯語句。

9.6 函式的遞迴

函式可以呼叫自己,這就叫函式的遞迴。

#include

void

test

(int n)

}int

main()

9.6.1 遞迴的過程分析

案例:將十進位制轉換為二進位制

#include

void

test

(int n)

}int

main()

斐波那契數列例子:

斐波那契數列指的是這樣乙個數列0,1,1,2,3,5,8,13,21,34,55,89,144,…

第0項是0,第1項是第乙個1;

這個數列從第2項開始,每一項都等於前兩項之和。

int

fib(

int n)

}

9.6.2 遞迴的優點

遞迴給某些程式設計問題提供了最簡單的方法。

9.6.3 遞迴的缺點

乙個有缺陷的遞迴會很快耗盡計算機的資源,遞迴的程式難以理解和維護。

C語言總結9 C語言檔案操作

磁碟上的檔案是檔案 檔案包含檔案內容和檔案屬性,都是資料,需要儲存 檔案分為程式檔案 源程式檔案 目標檔案 可執行程式檔案 和資料檔案 資料檔案分為文字檔案 以ascii碼的形式儲存 和二進位制檔案 以為二進位制的形式儲存 1 從記憶體向磁碟輸入資料會先送到記憶體中的緩衝區,裝滿緩衝區之後才一起送到...

C語言 9 C語言的浮點資料型別

c語言系列課8 一文吃透c語言整型 c語言系列課7 10分鐘學會c語言基礎語法 c語言系列課6 hello world 第乙個c語言程式 c語言系列課5 visual studio整合開發環境的搭建 我們來討論一下類似於1.234567,0.00001,這類非整數的資料。我們可以先試試看,int能不...

9 C語言基本資料型別

有符號數 記憶體空間最高位元組是符號位。無符號數 記憶體空間最高位元組是資料。int 預設是有符號的.一般,有符號數用於計算,無符號數表示資料.對於右移運算,有符號數無法進行運算,因為最高位永遠是符號位 無符號數,更多的同於資料的採集 訪問 有符號數代表數字 浮點型與整型在記憶體中的儲存結構不同 浮...