【发布时间】:2009-09-15 12:48:08
【问题描述】:
我按照这个思路写了一个函数:
void myFunc(myStruct *&out) {
out = new myStruct;
out->field1 = 1;
out->field2 = 2;
}
现在在调用函数中,我可能会这样写:
myStruct *data;
myFunc(data);
这将填充data 中的所有字段。如果我在声明中省略了“&”,这将不起作用。 (或者更确切地说,它只会在函数中本地工作,但不会改变调用者中的任何内容)
有人可以向我解释一下这个“*&”实际上是做什么的吗?它看起来很奇怪,我无法理解它。
【问题讨论】: