如何打印char数组的地址

时间:2017-03-12 16:35:38

标签: c++ c++11

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数组的地址?

1 个答案:

答案 0 :(得分:4)

您需要转换为void*以调用operator <<的正确重载,而不是输出为C字符串

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