为什么cout返回数组中的所有字母
char a[] {'a', 'b', 'c', 'd', '\0'};
char* ap = a;
cout << ap << endl;
但是cout返回的地址是
int b[] {1,2,3,4,5};
int* bp = b;
cout << bp << endl;
由于ap和bp是指针并且指针持有地址,所以它们都不都返回地址吗?
答案 0 :(得分:2)
流插入运算符(operator <<
)对于char *具有显式重载,因此将以特殊方式对其进行处理。
答案 1 :(得分:1)
因为operator<<
为char *
定义了重载。
http://www.cplusplus.com/reference/ostream/ostream/operator-free/