C语言和C++中给函数传递数组参数的区别
时间: 2025-01-01 17:37:36 浏览: 6
在C语言中,当你向函数传递数组作为参数时,通常需要显式地将数组名转换为指向数组第一个元素的指针。例如:
```c
void printArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
printArray(numbers, sizeof(numbers)/sizeof(numbers[0]));
return 0;
}
```
这里`arr`实际上是一个指向`numbers`首元素的指针。
而在C++中,由于其更强的类型推导和模板支持,你可以直接传递数组,编译器会自动处理。如下所示:
```cpp
#include <iostream>
void printArray(int arr[], std::size_t size) {
for (std::size_t i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
printArray(numbers, sizeof(numbers));
return 0;
}
```
C++允许函数接受非指针形式的数组,使得代码更易读。
阅读全文