c++怎么在函数外定义一个空数组在函数内赋值
时间: 2024-05-12 12:17:30 浏览: 92
你可以在函数外定义一个空数组,并将其作为参数传递给函数。例如:
```c
#include <stdio.h>
void fillArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
arr[i] = i * 2;
}
}
int main() {
int myArray[10] = {};
fillArray(myArray, 10);
for (int i = 0; i < 10; i++) {
printf("%d ", myArray[i]);
}
return 0;
}
```
这个程序会打印出:0 2 4 6 8 10 12 14 16 18
相关问题
c++在类中定义一个成员数组然后通过构造函数从外界赋值为什么不行
C++中定义一个成员数组并通过构造函数从外界赋值是可以的,但是需要注意以下几点:
1. 数组的大小必须是已知的,不能使用变量来定义数组的大小。
2. 构造函数必须使用成员初始化列表来初始化数组。
下面是一个例子:
```cpp
class MyClass {
public:
MyClass(int size) : size_(size), array_{0} {
// 构造函数使用成员初始化列表初始化数组
}
private:
int size_;
int array_[10]; // 数组大小为10,不能使用变量来定义数组大小
};
```
在构造函数的成员初始化列表中,我们可以使用花括号来初始化数组,例如`array_{0}`表示将数组所有元素初始化为0。
C++中数组赋值的函数
在C++中,数组赋值主要是通过复制构造函数或者直接赋值操作符实现的。当你想要将一个数组复制到另一个数组,或者给一个数组赋予新的初始值时,可以按照以下几种方式:
1. **复制构造函数**:
如果你想创建一个新的数组并将其内容复制一份原有的数组,你可以使用C++的数组作为类的一个成员,并提供一个接受数组参数的复制构造函数。例如:
```cpp
class Array {
int elements[10];
public:
Array(const int arr[10]) { // 复制构造函数
for (int i = 0; i < 10; i++) {
elements[i] = arr[i]; // 深拷贝元素
}
}
};
```
2. **直接赋值操作符**(如果数组支持的话):
对于内置类型的数组,可以直接使用`=`操作符进行赋值,因为它们通常支持这种浅复制。例如:
```cpp
int source[10] = {1, 2, 3, ..., 10};
int dest[10];
dest = source; // 直接赋值,dest现在有源数组的内容
```
3. **赋值运算符**也可以用于动态分配的数组(如`std::vector`),这会改变存储位置但保留元素内容。
阅读全文