如何打印字符数组的地址

q09*_*987 4 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
Run Code Online (Sandbox Code Playgroud)

如何打印char数组的地址?

P0W*_*P0W 5

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

std::cout << static_cast<void*>(c) << std::endl;
std::cout << static_cast<void*>(c+3) << std::endl;
Run Code Online (Sandbox Code Playgroud)