用数组在子函数中作为形参与用数组作为形参有什么区别
时间: 2023-05-27 07:02:06 浏览: 133
用数组在子函数中作为形参和用数组作为形参是相同的,只是语法略有不同。在C语言中,一般使用指针来传递数组作为函数参数,因为数组作为函数参数时,它会被转换为指向数组首元素的指针。
使用指针作为形参,可以通过指针访问原始数组,并且可以修改数组中的元素。而使用数组作为形参时,函数中不能修改原始数组中的元素,因为数组作为参数是按值传递,相当于复制了一份原始数组,在函数内部修改的是这份复制的数组。
示例代码:
使用指针作为形参:
```c
void printArray(int *arr, int size) {
for(int i=0; i<size; i++) {
printf("%d ", *(arr + i));
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
printArray(arr, size);
return 0;
}
```
使用数组作为形参:
```c
void printArray(int arr[], int size) {
for(int i=0; i<size; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[5] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
printArray(arr, size);
return 0;
}
```
阅读全文