建立數(shù)組,返回指針。在要返回的兩個(gè)值類型相同時(shí),可以用創(chuàng)建數(shù)組的方式,將要返回的值存在數(shù)組中,并返回?cái)?shù)組首地址,這樣就可以實(shí)現(xiàn)返回兩個(gè)值的效果。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),柘榮企業(yè)網(wǎng)站建設(shè),柘榮品牌網(wǎng)站建設(shè),網(wǎng)站定制,柘榮網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,柘榮網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
一個(gè)函數(shù)是只能返回一個(gè)值,但你使用全局變量還是可以同時(shí)改多個(gè)值的。
當(dāng)我們需要函數(shù)返回多個(gè)值時(shí),除了函數(shù)體中的return語(yǔ)句返回其中一個(gè)之外,其它的返回值我們可以通過定義全局變量來(lái)處理。
c語(yǔ)言函數(shù)只能最多有一個(gè)返回值。我們以一個(gè)數(shù)據(jù)運(yùn)算函數(shù)作為實(shí)例講解:使用指針返回額外數(shù)據(jù):定義指針參數(shù),將結(jié)果通過指針返回。如果有很多類型相同的數(shù)據(jù),如何返回?cái)?shù)組呢?c語(yǔ)言也只能借助指針返回?cái)?shù)組。
1、如果在自定義函數(shù)里面new的指針,函數(shù)返回前沒有delete,指針是沒有了,但指針指向的內(nèi)存不會(huì)被釋放,所以不會(huì)出現(xiàn)野指針,但會(huì)造成內(nèi)存泄漏。這樣使用指針是不規(guī)范的。
2、一般在函數(shù)中的變量指針都會(huì)釋放,但是除了用*alloc取得的空間,還除了加了static的變量,加了static的變量只在程序退出后才釋放,用*alloc取得的空間只在free后和程序結(jié)束時(shí)才釋放。
3、函數(shù)是單向傳遞的 如果實(shí)參是指針 在被調(diào)用函數(shù)中改變的是指針 則屬于單向傳遞 主函數(shù)中指針不變。
4、函數(shù)參數(shù)用值傳遞時(shí),函數(shù)的形參只不過是實(shí)參的拷貝而已。也就是說(shuō),1中調(diào)用swap函數(shù)時(shí),內(nèi)存中實(shí)際上a,b,x,y四個(gè)變量都存在,x是a的拷貝,y是b的拷貝,對(duì)x,y的值進(jìn)行交換,a,b的值并未交換。
1、調(diào)用函數(shù)的return返回給main函數(shù)。main函數(shù)若return 0,那么這個(gè)0返回給計(jì)算機(jī),表示程序運(yùn)行成功。
2、所有C函數(shù),只要其有返回值,都是由寄存器Ax(對(duì)于32位而言為EAX,如果AX不足以容納,則由DX保存超過AX容量的部分)保存的(也可能是值,也可能是某一地址,視返回類型而定)。
3、C語(yǔ)言中能自動(dòng)運(yùn)行的只有main函數(shù),其他由系統(tǒng)或者我們自己編寫的函數(shù)在使用時(shí)是在main函數(shù)運(yùn)行時(shí)進(jìn)行調(diào)用的。
4、如果沒有return 語(yǔ)句,那么函數(shù)沒有返回值,調(diào)用函數(shù)里面就不能把他當(dāng)做一個(gè)數(shù)值來(lái)使用,會(huì)出現(xiàn):fun();單獨(dú)成句的語(yǔ)句,在fun()里面可能進(jìn)行了一些操作,但不需要結(jié)果。
1、靜態(tài)變量。函數(shù)內(nèi)部定義的帶static修飾的變量為靜態(tài)變量,這種變量在函數(shù)退出后不會(huì)釋放內(nèi)存,直到程序退出時(shí)一起釋放。3 動(dòng)態(tài)分配內(nèi)存。
2、一般情況下C里能造成你這種效果的唯一可能就是 malloc之類申請(qǐng)的內(nèi)存沒用free之類釋放。
3、肯定會(huì)釋放了,函數(shù)調(diào)用完成后,函數(shù)里的所有局部變量將會(huì)被釋放。但是你寫的這個(gè)程序根本就有問題。
4、函數(shù)返回后,arr占用的內(nèi)存已經(jīng)被程序釋放, 但讀這個(gè)內(nèi)存地址里的內(nèi)容還是 合法的 問題是這個(gè)內(nèi)存被釋放后, 可能又被其他程序調(diào)用, 其內(nèi)容有可能在你讀取前已經(jīng)被更改, 所以你讀出的內(nèi)容可能不變, 也可能已經(jīng)變了。
5、代碼本身是存儲(chǔ)在內(nèi)存的代碼段中的,而函數(shù)沒有說(shuō)存儲(chǔ)的概念,函數(shù)調(diào)用時(shí)是通過棧來(lái)實(shí)現(xiàn)的。在函數(shù)體內(nèi)聲明的變量在默認(rèn)情況下都是auto存儲(chǔ)類型 在代碼塊之間傳遞信息的一種方法就是使用外部變量。
6、比如,你要到某地去,走在路上時(shí),看到路邊有個(gè)屋子,你想去看一下,但是又怕迷路了,那么只好記住你現(xiàn)在所在的位置(也就是保留現(xiàn)場(chǎng))。然后到屋子參觀一番后,離開屋子時(shí),只要返回到之前所記的位置就行了。
實(shí)參傳給形參時(shí),有兩種傳遞方式,一種是值傳遞,一種是引用型傳遞。值傳遞時(shí),形參的改變并不會(huì)反饋給實(shí)參,實(shí)參并不改變;引用型傳遞時(shí),形參的改變,會(huì)反饋給實(shí)參,實(shí)參也會(huì)改變。引用型傳遞需要在形參名前面加“&”。
實(shí)參是不會(huì)受到形參的影響的。就算傳指針,也只是改變指針指向的值而已。
num(int num1,int num2){ num1++;num2--;return num1+num2;} 參數(shù)a,b就是值傳遞,調(diào)用函數(shù)時(shí),將a,b變量的拷貝賦值給num1,num2;函數(shù)中對(duì)num1++,num2--運(yùn)算后其值分別為2,1,但a,b本身并不改變。
如果通過函數(shù)傳參方式調(diào)用,并且不是傳的指針,那就不會(huì)改變?cè)瓉?lái)的值,如果想改變?nèi)肿兞康闹担梢灾苯釉诤瘮?shù)中使用,不需要傳參。
答案是B,單向的值傳遞 簡(jiǎn)單變量做實(shí)參時(shí),相應(yīng)的形參變量也是簡(jiǎn)單變量,它們之間的數(shù)據(jù)傳遞方式是單向的值傳遞,即數(shù)據(jù)只能由實(shí)參傳到形參,形參值的改變不影響實(shí)參值的變化。
標(biāo)題名稱:c語(yǔ)言調(diào)用函數(shù)后 c語(yǔ)言調(diào)用函數(shù)后為什么不輸出值
轉(zhuǎn)載源于:http://chinadenli.net/article30/dehjiso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、網(wǎng)站排名、手機(jī)網(wǎng)站建設(shè)、商城網(wǎng)站、做網(wǎng)站、網(wǎng)站建設(shè)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)