C語言學習筆記(8)函式

2021-09-12 07:02:20 字數 2748 閱讀 2922

函式主要是用於將解決複雜的程式設計問題分解為數個可以分開進行解決的小問題,通過函式分裝,最後在拼連在一起。有利於多人協作開發。

函式同樣需要先宣告後呼叫,宣告符號為 void,且函式後一般帶有()

在原程式中需要使用相應語句就只需要直接呼叫函式即可。

例:

#include 

void

main()

void

printstar()

void

print_message()

輸出結果:

**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

不成熟的人為了自己的尊嚴壯烈地死去,成熟的人為了偉大的事業卑微的活著

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

**press any key to continue

乙個c程式由乙個或多個程式模組組成,每個程式模組作為乙個源程式檔案。對於較大的程式一般分開放在若干個原始檔中,由其組成乙個c程式。利於程式設計師了解程式並提高工作效率。

函式不能巢狀定義,所有的函式都是平行了。

無參函式:

型別識別符號 函式名()

型別識別符號 函式名(形式引數表列)

通常函式中會有return語句,表示return語句中的表示式資料與宣告函式的資料型別一致,沒有return語句則表明該函式沒有返回值,則函式的返回值需要定義為void。如果資料型別省略則預設為int型別。

函式的使用:比較兩個數的大小。

#include 

void

main()

int max

(int x ,int y)

在上面的例子中int x ,int y及為形式引數,a , b為實際引數

一般會將實參賦給形參

形參和實參資料型別要相同,或形參的資料型別包含實參的資料型別,否則可能引起精度損失

return函式的作用是將函式計算的值返回到改函式上,及賦予函式計算的結果,而如果函式不需要輸出值,那麼可用void來呼叫函式。

在函式的使用中跟變數的使用有相似之處,即需要先宣告後呼叫,相當於告訴系統存在這個函式,以防止系統報錯。

void

main()

如果在呼叫函式之前定義了函式即子函式在主函式之前,那麼可以不用在主函式前宣告函式,即系統已經在前面了解了子函式,在後面呼叫的時候就可以直接呼叫了。

#include 

int max

(int x ,int y)

void

main()

函式的呼叫可以分為自左向右呼叫和自右向左呼叫

在vc++中為自右向左呼叫

#include 

void

main()

int f

(int a,int b)

可發現若從左向右呼叫函式則有a = 2,b = 3,輸出應為1

而若從右向左呼叫函式則a = 3,b = 3,輸出為0

該程式的輸出值為0

證明函式是從右向左呼叫函式的。

在函式的使用中可以進行多個函式的巢狀使用

流程為:

1.先執行主函式的語句

2.在遇到第乙個子函式時轉移到子函式所在位置對子函式的語句進行讀取

3.在遇到子函式的子函式時再轉移到相應位置進行讀取

4.執行完子函式的子函式的語句後轉回子函式的未讀取的語句進行讀取

5.讀取完子函式的剩餘語句後繼續讀取主函式的語句,完成讀取

#include 

void

main()

int max4

(int x, int y, int z, int n)

int max2

(int a ,int b)

全域性變數是在函式外部宣告的,因此對於所有函式都可以呼叫,同樣可以在任何地方輸出

但是,區域性變數是僅僅定義在相應的函式內部的,只在函式內部中可以進行呼叫和輸出

這樣做的優勢是可以在不同的函式內定義同樣的變數名,使得在較多的函式中需要定義過多的變數。

在函式中直接或間接的呼叫函式本身,稱為函式的遞迴呼叫。

以我個人的理解,函式的遞迴呼叫相當於乙個遞減後遞增的過程。

類似於迴圈結構,設定語句運算,但是運算是在上一級的結果上進行的。

因此,如果計算第n步,函式就會逐級退回第1步,在第1步運算完成,逐漸累積運算知道第n步

例:

#include

int main()

int age

(int n)

//定義遞迴函式

C語言學習筆記 8

1 浮點數儲存所帶來的問題 float和double都不能保證可以精確的儲存乙個小數 比如 float 6.234 很可能計算機中儲存的是6.233999 例題 有乙個浮點型變數x怎麼判斷x的值是否為0 if x 0.000001 0.000001 是零else 不是零2 迴圈更新中的變數不能定義成...

C語言學習筆記8

c語言學習 過成中會遇到很多的c語言詞彙和一些常用的c語言相關單詞,那麼我今天就來總結一些關於這方面的知識。語言詞彙 在 語言中使用的詞彙分為六類 識別符號,關鍵字,運算子,分隔符,常量,注釋符等。1.識別符號 在程式中使用的變數名 函式名 標號等統稱為識別符號。除庫函式的函式名由系統定義外,其餘都...

C語言學習筆記 8

1.字串入門 字串也稱字串字面量,是用一對雙引號括起來的字串行。我們也許經常會遇到字串特別長的情況,在c 中,我們一般會用 符號來表示。console.writeline hello world 但是在c中,我們會這樣來寫 int main 還記得我曾經講的最多的一句話就是,把字串當做字元陣列來玩。...