C中數(shù)組名代表該數(shù)組的首地址,
目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站改版維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、蓮都網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
char
s[]="abc";
s代表的就是‘a(chǎn)’在內(nèi)存中的地址
以地址作參數(shù)
,實(shí)參和形參同時(shí)改變
void fun(int arr[], int n);
在函數(shù)定義的時(shí)候,形參int arr[]不是表示某個(gè)元素的值,而是告訴編譯器第一個(gè)參數(shù)是一個(gè)數(shù)組指針,可以接收實(shí)參傳過(guò)來(lái)的數(shù)組地址。
實(shí)際上以上定義等價(jià)于下面的定義。
1.數(shù)組里面帶元素個(gè)數(shù):
void fun(int arr[常數(shù)], int n);
這里的常數(shù)可以是任意正整數(shù),實(shí)際上編譯器是會(huì)忽略,因?yàn)檫@里只要告訴編譯器我接收的是一個(gè)數(shù)組指針,至于它有多少個(gè)元素不關(guān)心,因?yàn)閷?shí)參也只是傳個(gè)地址過(guò)來(lái)。元素個(gè)數(shù)由參數(shù)二控制。至于為什么要這么約定可以看下面補(bǔ)充說(shuō)明。
2.void fun(int *arr, int n);
使用指針,這種方式和題目中的方式是最常用的方式,第一種最不常用。
補(bǔ)充說(shuō)明(為什么數(shù)組作為函數(shù)參數(shù)是傳地址,而不是傳每個(gè)元素):
設(shè)想一下,有一個(gè)函數(shù)如下
int fun(int nums[1000], int size)
它的參數(shù)一要處理1000多個(gè)元素的數(shù)組,如果是傳值即每個(gè)元素,那在函數(shù)體內(nèi)是不是就得再申請(qǐng)1000多個(gè)整數(shù)的內(nèi)存,還需要把值從實(shí)參那里復(fù)制過(guò)來(lái),這是非常耗時(shí)間的而且沒(méi)有必要,因?yàn)樵趦?nèi)存的某個(gè)塊已經(jīng)存放了這些數(shù)據(jù)。只要告訴放在哪個(gè)位置,你函數(shù)體去那里找就行了。這里說(shuō)的就是傳地址了,只需要傳個(gè)數(shù)組首地址,然后告訴有多少個(gè)元素要處理就OK了。傳地址只需要復(fù)制地址給形參,相對(duì)傳每個(gè)元素快得多。
一維數(shù)組的元素作為函數(shù)實(shí)參,與同類(lèi)型的簡(jiǎn)單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
數(shù)組名代表著整個(gè)數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實(shí)參,傳遞的是整個(gè)數(shù)組,即形參數(shù)組和實(shí)參數(shù)組完全相同,是存放在同一存儲(chǔ)空間的同一個(gè)數(shù)組。這樣形參數(shù)組
修改時(shí),實(shí)參數(shù)組也同時(shí)被修改了。形參數(shù)組的元素個(gè)數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個(gè)數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個(gè)數(shù)組的地址,修改了函數(shù)形參數(shù)組元素的值,會(huì)影響到外面的實(shí)參數(shù)組
void change(int array[])
{
printf("array ==%p\n",array);
array[0] = 100;
}
int main()
{
int ages[6] = {10,11,13,15,11,18};
printf("array ==%p\n",ages);
change(ages);
printf("%d\n",ages[0]);
return 0;
}
輸出結(jié)果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
網(wǎng)站欄目:c語(yǔ)言數(shù)組是函數(shù)形參 c語(yǔ)言函數(shù)的形參是數(shù)組
網(wǎng)站URL:http://muchs.cn/article2/ddccjic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、App開(kāi)發(fā)、網(wǎng)站營(yíng)銷(xiāo)、外貿(mào)建站、網(wǎng)站設(shè)計(jì)
聲明:本網(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)