给定以下代码:
void Allocate(int *p)
{
p = new int;
*p++ = 2;
}
int main()
{
int i = 10;
Allocate(&i);
std::cout << i << std::endl;
}
我对以下内容的含义有些迷惑:
*p++ = 2;
输出是10
,我对为什么会出现这种情况的推理是这*p++
是一个临时的,因此对它的任何分配都会在Allocate(int *p)
.
是这样吗?谢谢你的建议!