将指针传递给数组而不是数组

时间:2016-08-09 23:08:07

标签: c++ arrays

当我有一个以数组为例的函数时

void foo(std::vector<double> array)
{
something
}

我首先创建一个指向某个数组的指针

std::vector<double> *array_pointer;

然后将其指向数组

array_pointer = &array;

并将其传递给函数

foo(*array_pointer);
我是否会像传递数组那样得到同样的结果,即

foo(array);

1 个答案:

答案 0 :(得分:3)

alter table coaches add constraint unq_coaches_name unique (lastname);

alter table classes add constraint fk_classes_lastname
    foreign key (lastname) references coaches(lastname);

void foo(std::vector<double> array) 按值传递。 array将复制传递的参数并对副本进行操作。无论您对foo中的array做什么都不会被来电者观察到,因为它有不同的foo

无法使用指针调用

array。请注意,您必须取消引用指针,获取指向的对象,使用foo来调用*array_pointer而不是传递指针。这样可以让你回到起步的地方。

如果问题在于调用者在foo返回后未获得更新array,请考虑通过引用传递foo

array

现在不会进行复制,void foo(std::vector<double> &array) 可以直接修改来电者提供的foo