3 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
數(shù)組名作函數(shù)參數(shù)數(shù)組名可以作函數(shù)的實(shí)參和形參。如:
1234567891011 | main() { int array[10]; ………… f(array,10); ………… } f( int arr[], int n) { ………… } |
array為實(shí)參數(shù)組名,arr為形參數(shù)組名。在學(xué)習(xí)指針變量之后就更容易理解這個(gè)問(wèn)題了。數(shù)組名就是數(shù)組的首地址,實(shí)參向形參傳送數(shù)組名實(shí)際上就是傳送數(shù)組的地址,形參得到該地址后也指向同一數(shù)組。這就好象同一件物品有兩個(gè)彼此不同的名稱一樣。同樣,指針變量的值也是地址,數(shù)組指針變量的值即為數(shù)組的首地址,當(dāng)然也可作為函數(shù)的參數(shù)使用。歸納起來(lái),如果有一個(gè)實(shí)參數(shù)組,想在函數(shù)中改變此數(shù)組的元素的值,實(shí)參與形參的對(duì)應(yīng)關(guān)系有以下4種:
形參和實(shí)參都是數(shù)組名。
12 main()
{
123456789 int
a[10];
……
f(a,10)
……
f(
int
x[],
int
n)
{
……
}
}
1 a和x指的是同一組數(shù)組。
實(shí)用數(shù)組,形參用指針變量。
1234567891011 main()
{
int
a[10];
……
f(a,10)
……
}
f(
int
*x,
int
n)
{
……
}
實(shí)參、型參都用指針變量。
實(shí)參為指針變量,型參為數(shù)組名。

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
同形式參數(shù)型式有關(guān)。
形式參數(shù) int array[],
int b[5] 作實(shí)際參數(shù)用, 只需寫 b
#include <stdio.h>
void reverse(int array[], int size) {
int i,t;
for (i=0;i<size/2;i++){
t = array[i];
array[i]=array[size-1-i];
array[size-1-i]=t;
}
}
main(){
int b[5]={1,2,3,4,5};
int c[6]={1,2,3,4,5,6};
int i;
reverse(b,5);
reverse(c,6);
for (i=0;i<5;i++) printf("%d ",b[i]);
printf("\n");
for (i=0;i<6;i++) printf("%d ",c[i]);
return 0;
}

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
reverse(int *array, int size)
reverse(int array[], int size)
reverse(int &array, int size)
添加回答
舉報(bào)