直接输出字符数组名为什么输出的不是地址而是数组元素?

 我来答
THX_吴
2018-02-02 · TA获得超过327个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:144万
展开全部
字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一个地址.
因为C和C++不进行数组的边界检查,数组在内存中存放的只是所有数组元素的值,而不存在一个地方可以表示数组的大小.所以cout函数没法知道该输出多少个元素。
字符串则不同,它有一个'\0'用来表示字符串结束,cout看到'\0'就知道输出结束了.
可能你想问,为什么别的类型不也弄个类似于'\0'的结束符呢.那我就反问你,你认为哪个值用来做结束符合适?字符串可以用'\0'来表示结束,是因为'\0'这个值就是专门用来表示字符串结束的,对于其他类型,比如整数,你能说用0或-1来专门表示数据结束么。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式