当我有一个以数组为例的函数时
void foo(std::vector<double> array)
{
something
}
我首先创建一个指向某个数组的指针
std::vector<double> *array_pointer;
然后将其指向数组
array_pointer = &array;
并将其传递给函数
foo(*array_pointer);
我是否会像传递数组那样得到同样的结果,即
foo(array);
答案 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
。