How to get address of a pointer in c/c++?

前端 未结 10 1896
逝去的感伤
逝去的感伤 2020-12-07 14:43

How to get address of a pointer in c/c++?

Eg: I have below code.

int a =10;
int *p = &a;

So how do I get addre

10条回答
  •  [愿得一人]
    2020-12-07 15:27

    To get the address of p do:

    int **pp = &p;
    

    and you can go on:

    int ***ppp = &pp;
    int ****pppp = &ppp;
    ...
    

    or, only in C++11, you can do:

    auto pp = std::addressof(p);
    

    To print the address in C, most compilers support %p, so you can simply do:

    printf("addr: %p", pp);
    

    otherwise you need to cast it (assuming a 32 bit platform)

    printf("addr: 0x%u", (unsigned)pp);
    

    In C++ you can do:

    cout << "addr: " << pp;
    

提交回复
热议问题