简单问题,一定给分

whduyang 2001-08-08 01:25:23
为什么char[]和int[]的结果不一样。
我定义2个数组
int a[]={1,2,3,4};
char b[]={'a','b','c','d'};
cout<<a<<endl;
cout<<b<<endl;

第一行打印了a的地址, 0x121406c
第二行打印了b的内容 abcd
为什么??

...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alex_ma 2001-08-08
  • 打赏
  • 举报
回复
同意ddeng(登登) 的说法
dot99 2001-08-08
  • 打赏
  • 举报
回复
来晚咯
krerix 2001-08-08
  • 打赏
  • 举报
回复
他们说的是对的
ginger 2001-08-08
  • 打赏
  • 举报
回复
那个地址是不是a[]的首地址?
SCUM 2001-08-08
  • 打赏
  • 举报
回复
<< 是被重载过的操作符,当传过去的参数是 int 型时会转换成地址
char* 被转换成字符串

但其实不应该这样用的,你的 b[] 中没有字符串结束符,打印结果应该不是 abcd

如果是,那是运气好。


xiterator 2001-08-08
  • 打赏
  • 举报
回复
a类型为 int* const, b类型为char* const,cout<< a调用的是class basic_ostream<...>:: operator<<(const void *_X), cout << b调用的是inline basic_ostream<...>& __cdecl operator<<( basic_ostream<...>& _O, const char *_X)

fsb_12345 2001-08-08
  • 打赏
  • 举报
回复
int a[]是int型数组,a表示一个地址,要打应a的内容应打印A[0],A[1],A[2],A[3]
关于char b[],UP
MSXP2 2001-08-08
  • 打赏
  • 举报
回复
yes
ddeng 2001-08-08
  • 打赏
  • 举报
回复
int a[]是声明int型数组,a为一个指针,也就是一个长整数了,
char b[]实际上是声明一个字符串,相当于char *b = "abcd";

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧