【发布时间】:2010-04-27 04:18:08
【问题描述】:
为什么我不能使用将指针作为左值返回的函数?
例如这个工作
int* function()
{
int* x;
return x;
}
int main()
{
int* x = function();
x = new int(9);
}
但不是这个
int* function()
{
int* x;
return x;
}
int main()
{
int* x;
function() = x;
}
虽然我可以使用指针变量作为左值,但为什么不能使用返回指针作为左值的函数?
另外,当函数返回一个 引用,而不是指针,然后 它成为一个有效的左值。
【问题讨论】:
-
你试过用括号括起来吗?例如
*(myfunction()) = x;... 另外,您是要分配给它,还是分配给它指向的位置(即x = somepointer;或*x = somepointer;)?有区别。