This question already has answers here:
Why is address of char data not displayed?
(8个答案)
4个月前关闭。
我对这个问题很好奇
它将输出第一个元素的地址(1)
但.....
它不会输出第一个元素的地址,但会输出整个数组“ ab”。
为什么会发生?
(8个答案)
4个月前关闭。
我对这个问题很好奇
int p[] = {1,2,3};
cout << p;
它将输出第一个元素的地址(1)
但.....
char p[] = {'a','b'};
cout << p;
它不会输出第一个元素的地址,但会输出整个数组“ ab”。
为什么会发生?
最佳答案
第一个将使用std::basic_ostream<>::operator <<(const void *)
,它将仅输出地址。第二个使用std::operator<<(std::basic_ostream<> &, const char *)
,它将输出字符数组,就好像它是字符串文字一样。
关于c++ - 字符数组地址和整数数组地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57780905/