面试题答案
一键面试在C语言中,数组名作为参数传递时,实际传递的是数组首元素的地址,也就是一个指针。
以下是示例代码:
#include <stdio.h>
// 函数声明
void modifyArray(int *arr, int size);
int main() {
int array[5] = {1, 2, 3, 4, 5};
int size = sizeof(array) / sizeof(array[0]);
printf("修改前数组元素: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
modifyArray(array, size);
printf("修改后数组元素: ");
for (int i = 0; i < size; i++) {
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
// 函数定义,修改数组元素的值
void modifyArray(int *arr, int size) {
for (int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
在上述代码中:
modifyArray
函数接受一个int
类型的指针arr
和数组的大小size
作为参数。这里的arr
实际上就是数组首元素的地址。- 在
main
函数中,定义了一个数组array
并初始化。然后调用modifyArray
函数,将数组名array
作为参数传递给函数,实际上传递的是数组首元素的地址。 - 在
modifyArray
函数内,通过指针arr
来修改数组元素的值,将每个元素都乘以2 。 - 最后在
main
函数中打印修改前后的数组元素,以验证修改是否成功。