C/C++整型数组与字符数组问题
如下,整型数组的数组名是数组首个元素的地址也是首地址整型数据一个一个存储,而字符数组的数组名显示的是字符串,字符串是地址嘛?字符数组不也是一个一个字符存储的嘛,那不就是说...
如下,整型数组的数组名是数组首个元素的地址 也是首地址整型数据一个一个存储, 而字符数组的数组名显示的是字符串,字符串是地址嘛?字符数组不也是一个一个字符存储的嘛,那不就是说字符数组的数组名应该是首个字符的地址,怎么会是字符串呢?表示不理解。。。
展开
3个回答
展开全部
cout这个对象的运算符被重载了好多个类型的版本,当它遇到char*的时候它就会认为这是一个字符串(即字符数组,并且最后有一个‘\0'做为结尾)来显示,而它遇到int的时候就会把这个int转换成字符串来进行输出,遇到int*的话就是把地址的值转换成字符串来显示。
这算是C/C++对char*这种类型指针的一个特殊处理吧,理论上它应该显示一个地址的值,但语言本身就这么规定了,毕竟字符串不是定长的,而其它数据类型是定长的。。。而显示字符串是很有必要的。
这算是C/C++对char*这种类型指针的一个特殊处理吧,理论上它应该显示一个地址的值,但语言本身就这么规定了,毕竟字符串不是定长的,而其它数据类型是定长的。。。而显示字符串是很有必要的。
展开全部
c++中的<<这个运算符已经被重载了,对于char*这样的指针,它就会尝试输出字符串。
如果你想看字符数组的首地址,必须用强制转换。如下:
cout << d << endl << (int) (&d[0]);
如果你想看字符数组的首地址,必须用强制转换。如下:
cout << d << endl << (int) (&d[0]);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询