问题:C++针指向的地址在函数中赋值,当函数调用结束之后,仍然是之前的地址?不是特别明白。
下面是写的代码。打印每个阶段的p的地址。
```void f1(char *p)
{
cout << static_cast<const void *>(p) << endl;
char *a= new char;
p = a;
cout << static_cast<const void *>(p) << endl;
delete a;
}
int main()
{
char *p=NULL;
char d = 'q';
p = &d;
cout << static_cast<const void *>(p)<<endl;
f1(p);
cout << static_cast<const void *>(p) << endl;
return 0;
}
这是得到的结果值,一开始的地址打印出来,在函数中指向一个新的对象,打印指向一个新的地址,当释放指向地址的空间时,返回后又指向原来地址了。
然后稍微改动一下,不销毁这个空间,发现返回还是这个地址。
结果还是一致的。