This question already has answers here:
Why is address of char data not displayed?
                                
                                    (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/

10-11 22:36
查看更多