數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組 修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。
金鳳網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,金鳳網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為金鳳千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個(gè)售后服務(wù)好的金鳳做網(wǎng)站的公司定做!
實(shí)際情況是,數(shù)組做參數(shù),完全無法按值傳遞。這是由C/C++函數(shù)的實(shí)現(xiàn)機(jī)制決定的。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因?yàn)閿?shù)組名代表這個(gè)數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時(shí),就是找到這個(gè)數(shù)組第i號(hào)元素的地址進(jìn)行修改的。所以是第于是地址傳遞。
C語言中,數(shù)組名作為函數(shù)參數(shù),屬于數(shù)組參數(shù)傳遞。在VB0中,允許使用數(shù)組作為實(shí)參傳遞到子過程的形參中,數(shù)組傳遞必須采用地址傳遞的方式來傳遞參數(shù)。
下面例子,作為 指針傳遞 和 行指針傳遞。
name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長度。\x0d\x0a這樣調(diào)用這個(gè)函數(shù)只需要把二維數(shù)組函數(shù)名傳遞就可以了。
如果是只傳數(shù)組的數(shù)值的話,是做不到的。如果傳數(shù)組中某個(gè)值的地址的話,是可以做到的。簡單來說:只能以傳 數(shù)組地址 的方法來實(shí)現(xiàn)。
name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長度。\x0d\x0a這樣調(diào)用這個(gè)函數(shù)只需要把二維數(shù)組函數(shù)名傳遞就可以了。
void ex(int a[]){ } 或者可以寫成:void ex(int *a){ } 效果是一樣的。使用的時(shí)候:引用數(shù)組中的第2個(gè)元素(即下標(biāo)為1的元素)a[1]或者*(a+1)基本上與數(shù)組的正常使用沒有區(qū)別。
函數(shù)也可以有形參和返回值,其形參也稱為命令行參數(shù),由操作系統(tǒng)在啟動(dòng)程序時(shí)初始化,其返回值傳遞給操作系統(tǒng)。
結(jié)構(gòu)體數(shù)組傳給指針,實(shí)質(zhì)上是不可能的,本質(zhì)上傳的是數(shù)組首地址,根據(jù)偏移來操作數(shù)組,這樣看起來好像是真在操作數(shù)組一樣。就和普通指針一樣使用,只不過它是結(jié)構(gòu)體數(shù)組。
]={1,2,3,} 或者table[3],不能寫成table[],因?yàn)橄到y(tǒng)在定義數(shù)組時(shí)就給數(shù)組分配了地址,table[]沒有確定元素的個(gè)數(shù),不能分配地址空間。
1、數(shù)組作為參數(shù)是按地址傳遞的 數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時(shí)所進(jìn)行的傳送只是地址的傳送, 也就是說把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實(shí)在的數(shù)組。
2、數(shù)組在C++中是以指針的形式進(jìn)行傳遞的。我們可以把形參寫成指針形式,也可以寫成數(shù)組形式,但本質(zhì)上傳遞的都是指針。
3、不用指針,但又想通過在函數(shù)中改變此數(shù)組中的元素的值,方法如下:方法是實(shí)參與形參的對應(yīng)關(guān)系為:形參和實(shí)參都用數(shù)組名。
當(dāng)前標(biāo)題:c語言怎么在函數(shù)間傳遞 c語言怎么寫傳遞函數(shù)
網(wǎng)站地址:http://m.newbst.com/article42/dccdiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航、App設(shè)計(jì)、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)