從定義上:庫函數,和用戶定義函數兩種。
創新互聯專注于射洪網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供射洪營銷型網站建設,射洪網站制作、射洪網頁設計、射洪網站官網定制、微信小程序服務,打造射洪網絡公司原創品牌,更為您提供射洪網站排名全網營銷落地服務。
庫函數:由C系統提供,用戶無須定義,也不必在程序中作類型說明,只需在程序前包含有該函數原型的頭文件即可在程序中直接調用。在前面各章的例題中反復用到printf、scanf、getchar、putchar、gets、puts、strcat等函數均屬此類。
用戶定義函數:由用戶按需要寫的函數。對于用戶自定義函數,不僅要在程序中定義函數本身,而且在主調函數模塊中還必須對該被調函數進行類型說明,然后才能使用。
C語言函數三要素是:定義域、值域和對應法則。
一,C語言函數定義域
(1)無參函數定義的一般形式如下:
類型標識符 ?函數名(){
聲明部分
語句
}
其中類型標識符和函數名稱為函數頭。類型標識符指明了本函數的類型,函數的類型實際上是函數返回值的類型。該類型標識符與前面介紹的各種說明符相同。函數名是由用戶定義的標識符,函數名后有一個空括號,其中無參數,但括號不可少。
{}中的內容稱為函數體。在函數體中聲明部分,是對函數體內部所用到的變量的類型說明。
在很多情況下都不要求無參函數有返回值,此時函數類型符可以寫為void。
這里,只把main改為Hello作為函數名,其余不變。Hello函數是一個無參函數,當被其它函數調用時,輸出Hello world字符串。
(2)有參函數定義的一般形式
有參函數定義的一般形式如下:
類型標識符 ?函數名(形式參數表列){
聲明部分
語句
}
有參函數比無參函數多了一個內容,即形式參數表列。在形參表中給出的參數稱為形式參數,它們可以是各種類型的變量,各參數之間用逗號間隔。在進行函數調用時,主調函數將賦予這些形式參數實際的值。形參既然是變量,必須在形參表中給出形參的類型說明。
例如,定義一個函數,用于求兩個數中的大數,可寫為:
第一行說明max函數是一個整型函數,其返回的函數值是一個整數。形參為a,b,均為整型量。a,b的具體值是由主調函數在調用時傳送過來的。在{}中的函數體內,除形參外沒有使用其它變量,因此只有語句而沒有聲明部分。在max函數體中的return語句是把a(或b)的值作為函數的值返回給主調函數。有返回值函數中至少應有一個return語句。
在C程序中,一個函數的定義可以放在任意位置,既可放在主函數main之前,也可放在main之后。例如:可把max 函數置在main之后,也可以把它放在main之前。修改后的程序如下所示。
二,C語言的值域
函數的值是指函數被調用之后, 執行函數體中的程序段所取得的并返回給主調函數的值。如調用正弦函數取得正弦值,調用例5.1的max函數取得的最大數等。對函數的值(或稱函數返回值)有以下一些說明:
1. 函數的值只能通過return語句返回主調函數。return 語句的一般形式為:
return 表達式;
或者為:
return (表達式);
該語句的功能是計算表達式的值,并返回給主調函數。 在函數中允許有多個return語句,但每次調用只能有一個return 語句被執行, 因此只能返回一個函數值。
2. 函數值的類型和函數定義中函數的類型應保持一致。 如果兩者不一致,則以函數類型為準,自動進行類型轉換。 3. 如函數值為整型,在函數定義時可以省去類型說明。
4. 不返回函數值的函數,可以明確定義為“空類型”, 類型說明符為“void”。如例5.3中函數s并不向主函數返函數值,因此可定義為:
void s(int n)
{ ……
}
三,C語言函數對應法則(C語言函數的調用)
函數調用的一般形式為:
函數名(實參列表);
實參可以是常數、變量、表達式等,多個實參用逗號,分隔。
在C語言中,函數調用的方式有多種,例如:
在函數調用中還應該注意的一個問題是求值順序的問題。所謂求值順序是指對實參列表中各個參數是自左向右使用呢,還是自右向左使用。對此,各系統的規定不一定相同。
【示例】在VC6.0下運行以下代碼。
運行結果:
8 7 6 7
可見VC 6.0是按照從右至左的順序求值。如果按照從左至右求值,結果應為:
9 ?10 ?9 ?8
函數的嵌套調用
函數不能嵌套定義,但可以嵌套調用,也就是在一個函數的定義中出現對另一個函數的調用。這樣就出現了函數的嵌套調用,即在被調函數中又調用其它函數。
【示例】計算sum = 1! + 2! + 3! + ... + (n-1)! + n!
分析:可以編寫兩個函數,一個用來計算階乘,一個用來計算累加的和。
運行結果:
1!+2!+...+9!+10! = 1215752192
函數聲明和函數原型
C語言代碼由上到下依次執行,函數定義要出現在函數調用之前。
但是,如果在函數調用前進行了函數聲明,那么函數定義就可以出現在任何地方了,甚至是其他文件。
函數聲明的一般形式為:
返回值類型 ?函數名( 類型 形參, 類型 形參… );
或為:
返回值類型 ?函數名( 類型, 類型…);
函數聲明給出了函數名、返回值類型、參數列表(參數類型)等與該函數有關的信息,稱為函數原型。
函數原型的作用是告訴編譯器與該函數有關的信息,讓編譯器知道函數的存在,以及存在的形式,即使函數暫時沒有定義,也不會出錯。
更改上面的代碼,將 factorial 和 sum 函數的定義放到 main 函數后面:
運行結果:
1!+2!+...+9!+10! = 1215752192
函數是數學名詞,代數式中,凡相關的兩數X與Y,對于每個X值,都只有一個Y的對應值。這種對應關系就表示Y是X的函數。
函數(function)的定義通常分為傳統定義和近代定義,函數的兩個定義本質是相同的,只是敘述概念的出發點不同,傳統定義是從運動變化的觀點出發,而近代定義是從集合、映射的觀點出發。
函數的近代定義是給定一個數集A,假設其中的元素為x,對A中的元素x施加對應法則f,記作f(x),得到另一數集B,假設B中的元素為y,則y與x之間的等量關系可以用y=f(x)表示,函數概念含有三個要素:定義域A、值域B和對應法則f。其中核心是對應法則f,它是函數關系的本質特征。
函數,最早由中國清朝數學家李善蘭翻譯,出于其著作《代數學》。之所以這么翻譯,他給出的原因是“凡此變數中函彼變數者,則此為彼之函數”,也即函數指一個量隨著另一個量的變化而變化,或者說一個量。
一種是用戶自定義函數,就是自己根據功能的需要自己編寫的函數;另一種是系統自帶的函數,如sqrt(x)函數 (就是求x的二次方根),這樣的可以直接用,前提是得在頭文件中把它們包含進去。
在編程領域中,C語言的運用非常之多,它兼顧了高級語言的匯編語言的優點,相較于其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。
擴展資料:
C語言包含有各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。
實際上,語句構成與硬件有關聯的較少,且C語言本身不提供與硬件相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
如果一個變量名后面跟著一個有數字的中括號,這個聲明就是數組聲明。字符串也是一種數組。它們以ASCII的NULL作為數組的結束。要特別注意的是,方括內的索引值是從0算起的。
參考資料來源:百度百科-c語言
參考資料來源:百度百科--C語言函數
C語言的特點 :
1、簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、字節和地址進行操作, 而這三者是計算機最基本的工作單元。
2、運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據結構豐富
C的數據類型有:整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4、C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。
5、C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6、C語言允許直接訪問物理地址,可以直接對硬件進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟件。
7、C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8、 C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合于多種操作系統, 如DOS、UNIX,也適用于多種機型。
用法補充:C語言對操作系統和系統使用程序以及需要對硬件進行操作的場合,用C語言明顯優于其它高級語言,許多大型應用軟件都是用C語言編寫的。 C語言具有繪圖能力強,可移植性,并具備很強的數據處理能力,因此適于編寫系統軟件,三維,二維圖形和動畫它是數值計算的高級語言。
擴展資料:
特有特點
1、C語言是一個有結構化程序設計、具有變量作用域(variable scope)以及遞歸功能的過程式語言。
2、C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
3、不同的變量類型可以用結構體(struct)組合在一起。
4、只有32個保留字(reserved keywords),使變量、函數命名有更多彈性。
5、部份的變量類型可以轉換,例如整型和字符型變量。
6、通過指針(pointer),C語言可以容易的對存儲器進行低級控制。
7、預編譯處理(preprocessor)讓C語言的編譯更具有彈性。
參考資料:百度百科-c語言
分享題目:c語言函數的三大特征 c語言有哪些特性
當前網址:http://m.newbst.com/article36/hihgpg.html
成都網站建設公司_創新互聯,為您提供定制網站、響應式網站、網頁設計公司、云服務器、品牌網站設計、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯