3 回答

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

TA貢獻1765條經驗 獲得超5個贊
同形式參數型式有關。
形式參數 int array[],
int b[5] 作實際參數用, 只需寫 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貢獻1883條經驗 獲得超3個贊
reverse(int *array, int size)
reverse(int array[], int size)
reverse(int &array, int size)
- 3 回答
- 0 關注
- 1147 瀏覽
添加回答
舉報