在C語言中,可以通過以下方式定義數組形參:
使用指針作為形參:傳遞數組的地址。定義數組形參時,可以使用指針類型聲明,例如:
void functionName(int *arr, int size) {
// 函數體
}
在這種情況下,函數內部可以通過指針訪問和修改數組的元素。
顯式指定數組大小:傳遞數組的內容。定義數組形參時,可以使用具體的數組類型聲明,配合指定的大小,例如:
void functionName(int arr[], int size) {
// 函數體
}
這種方式與第一種方式相似,只是不需要使用指針符號,而是直接使用數組類型聲明。
需要注意的是,在函數調用時,傳遞給數組形參的實參必須是數組類型,不能是指針類型。比如,以下做法是錯誤的:
int main() {
int *arr = malloc(sizeof(int) * 10); // 動態分配數組內存
functionName(arr, 10); // 錯誤!arr是指針類型,而不是數組類型
free(arr);
return 0;
}
正確的做法是使用具體的數組類型:
int main() {
int arr[10]; // 聲明一個具有10個元素的數組
functionName(arr, 10); // 正確!傳遞數組類型
return 0;
}