EG:
成都創(chuàng)新互聯(lián)公司網(wǎng)站建設由有經(jīng)驗的網(wǎng)站設計師、開發(fā)人員和項目經(jīng)理組成的專業(yè)建站團隊,負責網(wǎng)站視覺設計、用戶體驗優(yōu)化、交互設計和前端開發(fā)等方面的工作,以確保網(wǎng)站外觀精美、成都網(wǎng)站設計、網(wǎng)站制作易于使用并且具有良好的響應性。
void
sortl(float
b[],int
n)/*其中函數(shù)參數(shù)有兩個:一個是數(shù)組,形參的形式是b[],它在調(diào)用是接受具體數(shù)組的首地址;另一個形參是N,它在調(diào)用時數(shù)組元素的具體個數(shù)。注意用數(shù)組作為形參時,數(shù)組名是一對空方括號,而不能寫成b[n],數(shù)組元素個數(shù)用另一個形參*/
{
int
i,j;
float
t;
for
(i=0;i
b[j])
{
t=b[i];b[i]=b[j];b[j]=t
}
}
一維數(shù)組的元素作為函數(shù)實參,與同類型的簡單變量作為實參一樣,是單向的值傳遞,即數(shù)組元素的值傳給形參,從而形參是改變不影響實參
數(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;
}
輸出結果為: array ==0x7fff5be26c00
array ==0x7fff5be26c00
100
C中數(shù)組名代表該數(shù)組的首地址,
char
s[]="abc";
s代表的就是‘a(chǎn)’在內(nèi)存中的地址
以地址作參數(shù)
,實參和形參同時改變
如果一個函數(shù)的目的是要產(chǎn)生一個新的數(shù)組,那么最好的做法是在調(diào)用函數(shù)前就生成好這個數(shù)組,然后把這個數(shù)組作為參數(shù)傳給函數(shù),在函數(shù)中修改這個數(shù)組的值.
像你這種做法,在sum函數(shù)結束后,sth3數(shù)組就作為局部變量被釋放了.而且在main中,sum數(shù)組聲明以后,sum就是一個常量了,又怎么能放在=左邊呢.
另外,sum函數(shù)的算法也錯了.
正確代碼如下:
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;
}
如果還沒解決你的問題,可以加我百度HI賬號。