CC++ 中将数组作为形式参数传递为 int arr[] 和 int arr[N] 之间的区别

c++

1个回答

写回答

koushuning

2025-07-09 08:55

+ 关注

C++
C++

C/C++中,可以将数组作为形式参数传递给函数。在传递数组时,有两种常见的方法:一种是使用int arr[]作为形式参数,另一种是使用int arr[N]作为形式参数。这两种方法在语法上有一些细微的差别,下面将详细介绍它们之间的区别,并提供相应的案例代码。

使用int arr[]作为形式参数

当使用int arr[]作为形式参数时,传递的是一个指向数组第一个元素的指针。这意味着函数内部可以通过指针来访问和修改原始数组的元素。这种方式在函数需要访问整个数组时非常有用。

下面是一个示例代码,演示了如何使用int arr[]作为形式参数传递数组:

C++

#include <IOStream>

void modifyArray(int arr[], int size) {

for (int i = 0; i < size; i++) {</p> arr[i] *= 2; // 将数组中的每个元素乘以2

}

}

int mAIn() {

int arr[] = {1, 2, 3, 4, 5};

int size = sizeof(arr) / sizeof(arr[0]);

modifyArray(arr, size);

for (int i = 0; i < size; i++) {</p> std::cout << arr[i] << " ";</p> }

std::cout << std::endl;</p> return 0;

}

在上面的代码中,我们定义了一个modifyArray函数,它接受一个int arr[]和一个size参数。在函数内部,我们使用循环遍历数组,并将每个元素乘以2。然后在主函数中,我们调用modifyArray函数来修改原始数组,并打印修改后的数组。

使用int arr[N]作为形式参数

当使用int arr[N]作为形式参数时,传递的是一个具有固定大小N的数组。这种方式在函数需要明确知道数组大小时非常有用。

下面是一个示例代码,演示了如何使用int arr[N]作为形式参数传递数组:

C++

#include <IOStream>

void printArray(int arr[5]) {

for (int i = 0; i < 5; i++) {</p> std::cout << arr[i] << " ";</p> }

std::cout << std::endl;</p>}

int mAIn() {

int arr[] = {1, 2, 3, 4, 5};

printArray(arr);

return 0;

}

在上面的代码中,我们定义了一个printArray函数,它接受一个int arr[5]作为形式参数。在函数内部,我们使用循环打印数组的元素。然后在主函数中,我们调用printArray函数来打印原始数组。

在C/C++中,可以使用int arr[]和int arr[N]作为形式参数传递数组。使用int arr[]传递的是指向数组第一个元素的指针,可以在函数内部访问和修改原始数组的元素。而使用int arr[N]传递的是一个具有固定大小N的数组,函数需要明确知道数组的大小。根据具体的需求,选择合适的方式来传递数组参数。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号