C語言禿頭筆記--函數(shù)2-創(chuàng)新互聯(lián)

上章我們了解的庫(kù)函數(shù),和個(gè)別庫(kù)函數(shù)的使用,這一章我們了解自定義函數(shù)

成都創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的銅川網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴! 自定義函數(shù)

自定義函數(shù)和庫(kù)函數(shù)一樣,有函數(shù)名,返回值類型和函數(shù)參數(shù)。

但是不一樣的是這些都是我們自己來設(shè)計(jì)。這給程序員一個(gè)很大的發(fā)揮空間。

函數(shù)的組成:

ret_type fun_name(para1, * )

{

statement;//語句項(xiàng)

}

ret_type 返回類型

fun_name 函數(shù)名

para1 函數(shù)參數(shù)

這里我們運(yùn)用實(shí)例了解:

寫一個(gè)函數(shù)找出兩個(gè)整數(shù)的大值:

bbc5a5f3c6e34454999a83905b11832c.jpg

首先我們先給a,b賦值,然后在主函數(shù)調(diào)用自定義函數(shù)get_max并給予相應(yīng)的值,

(自定義函數(shù)的名稱可以隨便叫啥,但最好可以讓別人大概知道這個(gè)函數(shù)的作用)?

然后我們打印max,至于具體過程我們交給get_max完成

(上章講過,函數(shù)具體執(zhí)行過程我們不具體過問,只要給出正確結(jié)果就行)

當(dāng)主函數(shù)編譯完成后,我們?cè)俣xget_max。首先我們根據(jù)上面的語法格式定義函數(shù),給予數(shù)據(jù)類型(int),函數(shù)名(get_max),函數(shù)參數(shù)(int x,int y)

(因?yàn)橹骱瘮?shù)傳過來的是整型,所以我們定義時(shí),也應(yīng)該是整型)

之后我們定義 整型變量 z 并給初值,然后判斷x 是否大于 y ,如果大于則 把 x 賦值給 z ,如果不大于則把 y 賦值給 z ,最后我們返回較大值 即,return z

之后我們?cè)賮砜匆粋€(gè)例子:

這里我們要求運(yùn)用函數(shù)交換兩個(gè)值的位置并打印,如:

4125c029a1ea45dfad385ea464961423.jpg

首先我們定義 整型變量 a,b 然后先打印交換前的值,然后再調(diào)用函數(shù)swap并給予相應(yīng)的值

最后我們打印交換后的值

和上一題一樣,首先我們根據(jù)自定義函數(shù)格式定義函數(shù),然后定義一個(gè) 整型變量 z ,我們先把 x?的值給 z ,再把 y 的值給 x ,最后我們把? z 的值給 y 完成交換,因?yàn)檫@個(gè)函數(shù)不需要返回值,所以我們給函數(shù)名前面加 void ,

表示不返回任何值,也不需要返回

然后我們運(yùn)行程序,發(fā)現(xiàn) a 和 b 并沒有交換,如圖,這是為什么呢?

6f144117e72e4ad7b55010cf20e39c46.jpg

經(jīng)過調(diào)試后我們發(fā)現(xiàn), x? y? ?和 a? b 的地址不同,是兩個(gè)毫無關(guān)系的空間,如圖:

b2c759fcf22349a0a083478c48e832bd.jpg

所以我們?cè)诤瘮?shù)中交換時(shí),并沒有影響到主函數(shù)中,a和b的值

但如果我們可以讓函數(shù)拿到a和b的地址,是不是就能改變a和b呢?

這里我們運(yùn)用之前有初步了解的指針知識(shí),寫出代碼,如:

2403add3a85e45539e3cdc72d45b8c3d.jpg

f040811a4126404d9a61689e621f8cf7.jpg

我們定義一個(gè)新的函數(shù)swap2,我們將 a 和 b 的地址給予 swap2 ,即( &a? ,&b )。

然后我們?cè)诤瘮?shù)中運(yùn)用整型指針 pa 和 pb 接收,

(這時(shí),我們?cè)?pa 前面加 * 即可表示 a ,在pb前面加 * 即可表示 b )

然后我們定義變量 z ,重復(fù)我們第一次代碼的過程進(jìn)行交換,最后我們得到:

3c5576c8ad6b47a0aa45915436af066f.jpg

a 和?b 的位置我們就交換成功了

函數(shù)的參數(shù)

之后我們回到之前那個(gè)問題,為什么我們第一次代碼交換失敗呢?

這里我們具體介紹一下,首先我們要先了解函數(shù)的參數(shù)的定義

實(shí)際參數(shù)(實(shí)參)

真實(shí)傳給函數(shù)的參數(shù),叫實(shí)參。

實(shí)參可以是:常量、變量、表達(dá)式、函數(shù)等。

無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值,以便把這些值傳送給形參。

形式參數(shù)(形參)

形式參數(shù)是指函數(shù)名后括號(hào)中的變量,因?yàn)樾问絽?shù)只有在函數(shù)被調(diào)用的過程中才實(shí)例化(分配內(nèi)存單元),所以叫形式參數(shù)。形式參數(shù)當(dāng)函數(shù)調(diào)用完成之后就自動(dòng)銷毀了。因此形式參數(shù)只在函數(shù)中有效。

當(dāng)我們了解過實(shí)參和形參的定義后,我們就能知道為什么我們第一次會(huì)交換失敗

因?yàn)槲覀冎骱瘮?shù)中的 a b? 是實(shí)參,而函數(shù)中的 x y 是形參,而形參有自己獨(dú)立的空間并且在調(diào)用完畢后就銷毀了,所以我們第一次交換失敗了

所以我們可以簡(jiǎn)單的認(rèn)為:形參實(shí)例化后相當(dāng)于實(shí)參的一份臨時(shí)拷貝

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:C語言禿頭筆記--函數(shù)2-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://bm7419.com/article6/ddhiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)