如何获得在C / C指针的地址++? [英] How to get address of a pointer in c/c++?
本文介绍了如何获得在C / C指针的地址++?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何 C / C ++获得一个指针的地址
例如:I低于code
Eg: I have below code.
int a =10;
int *p = &a;
所以,我如何获得指针的地址 P
?
现在,我想打印的P地址,我该怎么办?
So how do I get address of pointer p
?
Now I want to print address of p, what should I do?
打印(%S,???)我传递给???
print("%s",???) what I pass to ???.
推荐答案
要得到p的地址做:
int **pp = &p;
和你可以去:
int ***ppp = &pp;
int ****pppp = &ppp;
...
,或者只在C ++ 11,你可以这样做:
or, only in C++11, you can do:
auto pp = std::addressof(p);
要打印在C地址,大多数编译器支持%P
,所以你可以简单地做:
To print the address in C, most compilers support %p
, so you can simply do:
printf("addr: %p", pp);
否则你需要转换它(假设32位平台)
otherwise you need to cast it (assuming a 32 bit platform)
printf("addr: 0x%u", (unsigned)pp);
在C ++中,你可以这样做:
In C++ you can do:
cout << "addr: " << pp;
这篇关于如何获得在C / C指针的地址++?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文