首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Char数组与Int数组

Char数组与Int数组
EN

Stack Overflow用户
提问于 2015-10-16 22:19:44
回答 2查看 2.2K关注 0票数 0

我有以下问题:

代码语言:javascript
复制
int a[2][2]={{1,2},{3,4}};
cout<<a[1]; //the output is 0x29ff18 , which is an address
--------------------------------------------------------------------
char b[][6]={"hello","there","now"};
cout<<b[1]; //the output is there, which is value of b[1]

我想知道为什么b1不提供像a1这样的地址.

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-16 22:37:15

字符数组和整数数组之间的基本区别是终止空字符:\0 --如果您像这样声明字符数组:char b[] = {'h','i'};,那么您的cout语句无法确定要做什么,并会给出奇怪的输出。但一旦你做到了:

代码语言:javascript
复制
char b[] = {'h','i','\0'};

代码语言:javascript
复制
char b[] = "hi";

您的cout工作得很好。这是因为首先,您将显式地在末尾添加一个空字符,而在第二个过程中,编译器会自动添加它。

对于数组,以及声明为a[]a[][]的数组,编译器将数组的第一个元素的地址存储在变量a中,因此在非字符数组的情况下可以获得第一个元素的地址。有关更多信息,请参阅此链接:What is the difference between int and char arrays?

票数 2
EN

Stack Overflow用户

发布于 2015-10-16 22:24:38

V的类型决定cout << v打印的内容。

一个是int数组,另一个是char数组。Cout按定义打印与int数组不同的char数组。就像现在这样。作为比约恩。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33180396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档