在C语言中,使用数组作为函数参数时是如何传递的?如何通过指针操作数组中的元素?请结合《西安交通大学程序设计基础考试试题解析》提供详细解释和示例代码。
时间: 2024-11-06 22:26:33 浏览: 35
在C语言中,数组作为函数参数时,实际上传递的是数组首元素的地址,而不是整个数组的拷贝。因此,函数内对数组的操作会影响到原数组。这种传递方式本质上是通过指针实现的,因为数组名退化成了指向数组首元素的指针。以下是一个示例来说明这一过程:
参考资源链接:[西安交通大学程序设计基础考试试题解析](https://wenku.csdn.net/doc/19giqd8ku4?spm=1055.2569.3001.10343)
假设我们有一个整型数组`int arr[] = {1, 2, 3, 4, 5};`,我们希望通过一个函数`modifyArray`来修改数组中的元素。下面是这个函数的定义:
```c
void modifyArray(int *arr, int length) {
for(int i = 0; i < length; i++) {
// 假设我们这里将每个元素乘以2
arr[i] *= 2;
}
}
```
在主函数中调用此函数:
```c
int main() {
int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]); // 获取数组长度
modifyArray(arr, length); // 调用函数修改数组
// 输出修改后的数组
for(int i = 0; i < length; i++) {
printf(
参考资源链接:[西安交通大学程序设计基础考试试题解析](https://wenku.csdn.net/doc/19giqd8ku4?spm=1055.2569.3001.10343)
阅读全文