数组名问题

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:15:32
int i[3]={1,2,3};
cout<<i<<endl;//输出地址

char c1[6]={'1','2','3','4','5','6'};
cout<<c1<<endl;//输出不是地址

书上说 一维数组 的 数组名 是数组的首地址
为什么char型数组就不对了呢?
对于char,是输出的全部内容
对于int,是输出地址
下面说是和cout有关系???不懂???
是不是char很特殊啊

不是地址是什么?

应该是和cout<<的函数有关系(建议看看函数原形)
cout<<&c1;
才是地址

因为C++ 默认的将char型按字符串输出.而地址是按数值输出. 比如在 C语言:
printf("%s",c1); 的结果不是地址,而
printf("%d",c1); 就是地址了.

cout<<c1<<endl; 是 按第一个方式输出的.
你可以在c1前面加上取地址符&
如:cout<<&c1<<endl; 来输出地址.

个人的看法...

人家说的是数字类型的是首地址..
CHAR类型除外..
CHAR类型,它会认为是字符串...