如何在c / c ++中获取指针的地址?
例如:我有下面的代码。
int a =10;
int *p = &a;
那么如何获得指针的地址p
呢?现在我要打印p的地址,该怎么办?
print(“%s”,???)我传递给???的内容。
要获取p的地址,请执行以下操作:
int **pp = &p;
您可以继续:
int ***ppp = &pp;
int ****pppp = &ppp;
...
或者,仅在C ++ 11中,您可以执行以下操作:
auto pp = std::addressof(p);
要在C语言中打印地址,大多数编译器都支持%p
,因此您可以简单地执行以下操作:
printf("addr: %p", pp);
否则,您需要进行投射(假设使用32位平台)
printf("addr: 0x%u", (unsigned)pp);
在C ++中,您可以执行以下操作:
cout << "addr: " << pp;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句