推荐答案
在 C 语言中,数组可以作为函数参数传递。通常有两种方式传递数组:
传递数组的指针:数组名本身就是一个指向数组首元素的指针,因此可以直接将数组名作为参数传递给函数。
传递数组的大小:为了在函数中正确处理数组,通常还需要传递数组的大小。
以下是一个示例代码:
// www.javascriptcn.com code example
#include <stdio.h>
// 函数声明
void printArray(int arr[], int size);
int main() {
int myArray[] = {1, 2, 3, 4, 5};
int size = sizeof(myArray) / sizeof(myArray[0]);
// 调用函数并传递数组和大小
printArray(myArray, size);
return 0;
}
// 函数定义
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}本题详细解读
1. 数组作为函数参数的基本概念
在 C 语言中,数组名实际上是一个指向数组首元素的指针。因此,当我们将数组作为参数传递给函数时,实际上传递的是数组的首地址。这意味着函数内部对数组元素的修改会影响到原始数组。
2. 传递数组的指针
在函数声明中,可以使用以下两种方式来表示数组参数:
void printArray(int arr[], int size);void printArray(int *arr, int size);
这两种方式是等价的,int arr[] 和 int *arr 都表示一个指向整型的指针。
3. 传递数组的大小
由于数组在传递给函数时只传递了首地址,函数内部无法直接知道数组的大小。因此,通常需要将数组的大小作为另一个参数传递给函数。
4. 示例代码解析
int myArray[] = {1, 2, 3, 4, 5};:定义并初始化一个整型数组。int size = sizeof(myArray) / sizeof(myArray[0]);:计算数组的大小。printArray(myArray, size);:调用printArray函数,并传递数组和大小。void printArray(int arr[], int size):函数定义,接收数组和大小作为参数,并遍历数组打印每个元素。
5. 注意事项
- 数组作为函数参数时,函数内部对数组元素的修改会影响到原始数组。
- 传递数组大小时,确保传递的大小是正确的,以避免数组越界访问。