一維數(shù)組的元素作為函數(shù)實(shí)參,與同類型的簡(jiǎn)單變量作為實(shí)參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實(shí)參
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、岳麓網(wǎng)站維護(hù)、網(wǎng)站推廣。
數(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
如果一個(gè)函數(shù)的目的是要產(chǎn)生一個(gè)新的數(shù)組,那么最好的做法是在調(diào)用函數(shù)前就生成好這個(gè)數(shù)組,然后把這個(gè)數(shù)組作為參數(shù)傳給函數(shù),在函數(shù)中修改這個(gè)數(shù)組的值.
像你這種做法,在sum函數(shù)結(jié)束后,sth3數(shù)組就作為局部變量被釋放了.而且在main中,sum數(shù)組聲明以后,sum就是一個(gè)常量了,又怎么能放在=左邊呢.
另外,sum函數(shù)的算法也錯(cuò)了.
正確代碼如下:
void Sum(int sth1[][3],int sth2[][3],int sth3[][3])
{
int i = 0;
int j =0;
do
{
sth3[i][j]=sth1[i][j]+sth2[i][j];
j++;
if(j==3)
}while(i3);
}
int main(void)
{
int matrix1[3][3]={
,
,
};
int matrix2[3][3]={
,
,
,
};
int sum[3][3];
Sum(matrix1,matrix2,sum);
Display(sum);
return 0;
}
如果還沒(méi)解決你的問(wèn)題,可以加我百度HI賬號(hào)。
要將數(shù)組長(zhǎng)度作為一個(gè)參數(shù)傳給average函數(shù),不能在average函數(shù)內(nèi)部通過(guò)int arrLen = sizeof(a) / 4;來(lái)計(jì)算數(shù)組長(zhǎng)度。因?yàn)閒loat average(float a[10])就相當(dāng)于float average(float *a) ,所以sizeof(a)恒等于4,sizeof(a) / 4恒等于1。
應(yīng)該這樣:
float average(float a[10],int arrLen) {
float sumSco = 0;
for (int i = 0; i arrLen; i++)
{
sumSco += a[i];
}
return sumSco / arrLen;
}
C中數(shù)組名代表該數(shù)組的首地址,
char
s[]="abc";
s代表的就是‘a(chǎn)’在內(nèi)存中的地址
以地址作參數(shù)
,實(shí)參和形參同時(shí)改變