代码之家  ›  专栏  ›  技术社区  ›  Milan BabuÅ¡kov

用C++表示指针作为字符串的最好的可移植方式是什么?

  •  5
  • Milan BabuÅ¡kov  · 技术社区  · 15 年前

    彼此之间

    我正在使用:

    SomeClass* p;
    ...
    printf("%ld", (uintptr_t)p);
    

    编辑

    6 回复  |  直到 15 年前
        1
  •  20
  •   C. K. Young    15 年前

    对于指针,始终使用 %p ---它是一个专门为以正确格式打印指针而设计的格式说明符。:-)

        2
  •  9
  •   Fred Larson    15 年前

    std::cout << p;
    

    如果你把心放在cstdio上:

    printf("%p", p);
    
        3
  •  7
  •   anon anon    15 年前

    printf有一个%p格式化程序,我相信它是标准化的:

    printf( "%p", p );
    

    但是,当你使用C++时,oFipe已经超载指针输出:

    #include <iostream>
    using namespace std;;
    
    class A {};
    
    int main() {
        A a;
        cout << &a << endl;
    }
    

    生产:

    0x22ff6f
    
        4
  •  3
  •   eduffy    15 年前

    你在找 %p 格式化字符串?

    printf("%p", p);
    

    NULL 也是给你的)。

        5
  •  0
  •   Paul J. Lucas    15 年前

    我会这么做的:

    cout << p << endl;
    

    unsigned long 第一。

    至于128位系统,他们是一个办法。使用64位,您可以直接寻址1680万兆字节的RAM。

        6
  •  0
  •   Shobhit Mitttal Shobhit Mitttal    15 年前

    它也可以做为

    这将确保跨平台的类似格式(x…)。