如何获得在C / C指针的地址++? [英] How to get address of a pointer in c/c++?

查看:125
本文介绍了如何获得在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆