这是c ++中的一小段代码,我分别创建了两个char和int数据类型的数组。但是,相同的打印操作对这两个数组的表现却不同
#include<iostream>
using namespace std;
int main()
{
char a[5]={'h','e','l','l','o'};
int b[5]={1,2,3,4,5};
cout<<a; //displays the string "hello"
cout<<"\n"<<b; //displays the address of b[0]
return(0);
}
我希望输出是两个数组的第一个元素的地址,即分别为a [0]和b [0]的地址,但是在这种情况下char类型的数组的行为有所不同。
答案 0 :(得分:7)
这是cout
的运算符<<的特殊重载,它将char *
参数视为以null结尾的字符串,并输出整个字符串。
如果要打印地址,请将其投射到void *
。
cout << (void *) a;