一維數(shù)組的元素作為函數(shù)實參,與同類型的簡單變量作為實參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實參
10年的雙峰網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整雙峰建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“雙峰網(wǎng)站設(shè)計”,“雙峰網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。
數(shù)組名代表著整個數(shù)組的地址,如果一維數(shù)組的名字作為函數(shù)實參,傳遞的是整個數(shù)組,即形參數(shù)組和實參數(shù)組完全相同,是存放在同一存儲空間的同一個數(shù)組。這樣形參數(shù)組
修改時,實參數(shù)組也同時被修改了。形參數(shù)組的元素個數(shù)可以省略。
#includestdio.h
//數(shù)組作為函數(shù)參數(shù),可以省略元素個數(shù)
//數(shù)組作為函數(shù)參數(shù),傳遞是整個數(shù)組的地址,修改了函數(shù)形參數(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
c語言中、數(shù)組在函數(shù)中的傳遞可以數(shù)組元素的傳遞!還有就是數(shù)組名的傳遞!其實、數(shù)組名的傳遞類似指針!就是把數(shù)組的元素的首地址傳到形參的!
你的
代碼
不全,我只能給你分析一下這種情況常見的錯誤了。
1、要返回
數(shù)組
定義
在子
函數(shù)
中。在函數(shù)體內(nèi)部定義的數(shù)據(jù)
變量
,如果未加修飾符(static和extern),那么她是局部的,函數(shù)執(zhí)行完畢之后
內(nèi)存
釋放,造成你訪問
錯誤
。你
下邊
的那個例子定義的數(shù)組是
全局變量
,先不說了下班了晚上補充
很簡單的,數(shù)組作為函數(shù)參數(shù)傳遞的時候只要是數(shù)組名就可以了,因為數(shù)組名本身就是數(shù)組的首地址 .給個程序看看
#includestdio.h
#define N 3
int array[N][N];
void main()
{
//在主函數(shù)內(nèi)聲明被調(diào)函數(shù)
void convert(int array[][3]);
int i,j;
printf("輸入數(shù)組:\n");
for(j=0;jN;j++)
for(i=0;iN;i++)
scanf("%d",array[i][j]);
printf("\n");
for(j=0;jN;j++)
{
for(i=0;iN;i++)
printf("%d\t",array[i][j]);
printf("\n");
}
//調(diào)用矩陣轉(zhuǎn)置函數(shù)
convert(array);
printf("\n");
for(i=0;iN;i++)
{
for(j=0;jN;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
}
void convert(int array[][3])
{
int i,j,t;
for(i=0;iN;i++)
for(j=0;jN;j++)//設(shè)置數(shù)組中轉(zhuǎn)置矩陣元素交換
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
例:
#includestdio.h
void?fact(int?*p,?int?n)
{
for(i?=?0;?i??n;?++i)
{
printf("%d?",?p?+?i);
}
printf("\n");
p[3]?=?6;
}
int?main()
{
int?a[5]?=?{1,?2,?3,?4,?5};
fact(a,?5);
for(i?=?0;?i??5;?++i)
{
printf("%d?",?a[i]);
}
printf("\n");
return?0;
}
名稱欄目:c語言傳遞數(shù)組給函數(shù) c語言傳遞數(shù)組實際上傳遞了什么
新聞來源:http://chinadenli.net/article48/hjjsep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、電子商務(wù)、App開發(fā)、虛擬主機、建站公司、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)