【问题标题】:How to print the address of char array如何打印char数组的地址
【发布时间】:2017-03-12 16:35:38
【问题描述】:

http://ideone.com/4p1gqr

#include <iostream>    

int main(int argc, char** argv)
{
  float *f = new float[10];

  std::cout << f << std::endl;
  std::cout << f + 3 << std::endl;

  char *c = new char[10];
  std::cout << c << std::endl;       // no print
  std::cout << c + 3 << std::endl;   // no print

  return 0;
}

stdout 
0x2b3cbaf1bc20
0x2b3cbaf1bc2c

如何打印char数组的地址?

【问题讨论】:

    标签: c++ c++11


    【解决方案1】:

    您需要强制转换为 void* 以调用 operator &lt;&lt; 的正确重载,而不是作为 C 字符串输出

    std::cout << static_cast<void*>(c) << std::endl;
    std::cout << static_cast<void*>(c+3) << std::endl;
    

    【讨论】:

      猜你喜欢
      • 2012-10-02
      • 1970-01-01
      • 2014-05-17
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2015-09-29
      相关资源
      最近更新 更多