C語言基礎(chǔ)4-函數(shù)

函數(shù)定義

注意:
1、[]包含的內(nèi)容可以省略质蕉,數(shù)據(jù)類型說明省略势篡,默認(rèn)是int類型函數(shù);參數(shù)省略表示該函數(shù)是無參函數(shù)模暗,參數(shù)不省略表示該函數(shù)是有參函數(shù)禁悠;
2、函數(shù)名稱遵循標(biāo)識符命名規(guī)范兑宇;
3碍侦、自定義函數(shù)盡量放在main函數(shù)之前,如果要放在main函數(shù)后面的話隶糕,需要在main函數(shù)之前先聲明自定義函數(shù)瓷产,聲明格式為:[數(shù)據(jù)類型說明] 函數(shù)名稱([參數(shù)]);

函數(shù)的形參和實參具有以下特點:
形參只有在被調(diào)用時才分配內(nèi)存單元,在調(diào)用結(jié)束時若厚,即刻釋放所分配的內(nèi)存單元拦英。因此,形參只有在函數(shù)內(nèi)部有效测秸。函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量疤估。
實參可以是常量、變量霎冯、表達(dá)式铃拇、函數(shù)等,無論實參是何種類型的量沈撞,在進(jìn)行函數(shù)調(diào)用時慷荔,它們都必須具有確定的值,以便把這些值傳送給形參缠俺。因此應(yīng)預(yù)先用賦值等辦法使實參獲得確定值显晶。
在參數(shù)傳遞時,實參和形參在數(shù)量上壹士,類型上磷雇,順序上應(yīng)嚴(yán)格一致,否則會發(fā)生類型不匹配”的錯誤躏救。

遞歸函數(shù)特點:
每一級函數(shù)調(diào)用時都有自己的變量唯笙,但是函數(shù)代碼并不會得到復(fù)制螟蒸,如計算5的階乘時每遞推一次變量都不同;
每次調(diào)用都會有一次返回崩掘,如計算5的階乘時每遞推一次都返回進(jìn)行下一次七嫌;
遞歸函數(shù)中,位于遞歸調(diào)用前的語句和各級被調(diào)用函數(shù)具有相同的執(zhí)行順序苞慢;
遞歸函數(shù)中诵原,位于遞歸調(diào)用后的語句的執(zhí)行順序和各個被調(diào)用函數(shù)的順序相反;
遞歸函數(shù)中必須有終止語句挽放。
一句話總結(jié)遞歸:自我調(diào)用且有完成狀態(tài)皮假。

C語言根據(jù)變量的生存周期來劃分,可以分為靜態(tài)存儲方式和動態(tài)存儲方式骂维。
靜態(tài)存儲方式:是指在程序運行期間分配固定的存儲空間的方式惹资。靜態(tài)存儲區(qū)中存放了在整個程序執(zhí)行過程中都存在的變量,如全局變量航闺。
動態(tài)存儲方式:是指在程序運行期間根據(jù)需要進(jìn)行動態(tài)的分配存儲空間的方式褪测。動態(tài)存儲區(qū)中存放的變量是根據(jù)程序運行的需要而建立和釋放的,通常包括:函數(shù)形式參數(shù)潦刃;自動變量侮措;函數(shù)調(diào)用時的現(xiàn)場保護(hù)和返回地址等。
C語言中存儲類別又分為四類:自動(auto)乖杠、靜態(tài)(static)分扎、寄存器的(register)和外部的(extern)。
1胧洒、用關(guān)鍵字auto定義的變量為自動變量畏吓,auto可以省略,auto不寫則隱含定為“自動存儲類別”卫漫,屬于動態(tài)存儲方式菲饼。
2、用static修飾的為靜態(tài)變量列赎,如果定義在函數(shù)內(nèi)部的宏悦,稱之為靜態(tài)局部變量;如果定義在函數(shù)外部包吝,稱之為靜態(tài)外部變量饼煞。
注意:靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元诗越,在程序整個運行期間都不釋放砖瞧;靜態(tài)局部變量在編譯時賦初值,即只賦初值一次掺喻;如果在定義局部變量時不賦初值的話芭届,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)感耙。
3褂乍、為了提高效率,C語言允許將局部變量得值放在CPU中的寄存器中即硼,這種變量叫“寄存器變量”逃片,用關(guān)鍵字register作聲明。
注意:只有局部自動變量和形式參數(shù)可以作為寄存器變量只酥;一個計算機(jī)系統(tǒng)中的寄存器數(shù)目有限褥实,不能定義任意多個寄存器變量;局部靜態(tài)變量不能定義為寄存器變量裂允。
4损离、用extern聲明的的變量是外部變量,外部變量的意義是某函數(shù)可以調(diào)用在該函數(shù)之后定義的變量绝编。

在C語言中不能被其他源文件調(diào)用的函數(shù)稱謂內(nèi)部函數(shù) 僻澎,內(nèi)部函數(shù)由static關(guān)鍵字來定義,因此又被稱謂靜態(tài)函數(shù)十饥,形式為:
static [數(shù)據(jù)類型] 函數(shù)名([參數(shù)])
這里的static是對函數(shù)的作用范圍的一個限定窟勃,限定該函數(shù)只能在其所處的源文件中使用,因此在不同文件中出現(xiàn)相同的函數(shù)名稱的內(nèi)部函數(shù)是沒有問題的逗堵。
在C語言中能被其他源文件調(diào)用的函數(shù)稱謂外部函數(shù) 秉氧,外部函數(shù)由extern關(guān)鍵字來定義,形式為:
extern [數(shù)據(jù)類型] 函數(shù)名([參數(shù)])
C語言規(guī)定蜒秤,在沒有指定函數(shù)的作用范圍時汁咏,系統(tǒng)會默認(rèn)認(rèn)為是外部函數(shù),因此當(dāng)需要定義外部函數(shù)時extern也可以省略作媚。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梆暖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子掂骏,更是在濱河造成了極大的恐慌轰驳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弟灼,死亡現(xiàn)場離奇詭異级解,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)田绑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門勤哗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人掩驱,你說我怎么就攤上這事芒划《梗” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵民逼,是天一觀的道長泵殴。 經(jīng)常有香客問我,道長拼苍,這世上最難降的妖魔是什么笑诅? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮疮鲫,結(jié)果婚禮上吆你,老公的妹妹穿的比我還像新娘。我一直安慰自己俊犯,他們只是感情好妇多,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燕侠,像睡著了一般砌梆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贬循,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天咸包,我揣著相機(jī)與錄音,去河邊找鬼杖虾。 笑死烂瘫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奇适。 我是一名探鬼主播坟比,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嚷往!你這毒婦竟也來了葛账?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤皮仁,失蹤者是張志新(化名)和其女友劉穎籍琳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贷祈,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡趋急,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了势誊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呜达。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖粟耻,靈堂內(nèi)的尸體忽然破棺而出查近,到底是詐尸還是另有隱情眉踱,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布霜威,位于F島的核電站谈喳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏侥祭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一茄厘、第九天 我趴在偏房一處隱蔽的房頂上張望矮冬。 院中可真熱鬧,春花似錦次哈、人聲如沸胎署。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琼牧。三九已至,卻和暖如春哀卫,著一層夾襖步出監(jiān)牢的瞬間巨坊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工此改, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留趾撵,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓共啃,卻偏偏與公主長得像占调,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子移剪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 原文地址:C語言函數(shù)調(diào)用棧(一)C語言函數(shù)調(diào)用棧(二) 0 引言 程序的執(zhí)行過程可看作連續(xù)的函數(shù)調(diào)用究珊。當(dāng)一個函數(shù)執(zhí)...
    小豬啊嗚閱讀 4,607評論 1 19
  • 1、c語言的函數(shù)有以下特點: (1)才源程序由函數(shù)組成纵苛,一個主函數(shù)main()+若干其他函數(shù) C程序中的函數(shù)類似文...
    滕王閣序閱讀 1,340評論 0 6
  • 一剿涮、C語言的結(jié)構(gòu) 1、Hello world 簡單來說攻人,一個C程序就是由若干頭文件和函數(shù)組成幔虏。 #include ...
    大嘴蝸牛閱讀 65,274評論 182 117
  • 1.C和C++的區(qū)別?C++的特性贝椿?面向?qū)ο缶幊痰暮锰帲?答:c++在c的基礎(chǔ)上增添類想括,C是一個結(jié)構(gòu)化語言,它的重...
    杰倫哎呦哎呦閱讀 9,515評論 0 45
  • 文/鴻運 江南雨紛紛烙博,江北愁煞人 一澇一旱兩相對 楊絮吹柳彈風(fēng)琴 無奈 老天...
    HONGYUNDANGTOU閱讀 298評論 1 8