关于字符窜

www_big 2004-11-22 01:47:44
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={1,2,3};
char b[]="abc";
cout << a << endl;
cout << a[0] << endl;
cout << b << endl;
cout << b[0] << endl;
return 0;
}

结果:
0012fecc //ok
1 //ok
abc //why?
a //ok
加上[]和不加[]有什么区别
在[0]中没有数 如[]为什么会错



...全文
161 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
caimps 2004-11-24
  • 打赏
  • 举报
回复
指针问题
allen_zhaozhencn 2004-11-24
  • 打赏
  • 举报
回复
int a[]={1,2,3};
char b[]="abc";
cout << a << endl;
cout << a[0] << endl;
cout << b << endl;
cout << b[0] << endl;

a 与 b 都代表一个地址.

a[0] 与 b[0] 则都代表数组首元素的值.
allen_zhaozhencn 2004-11-24
  • 打赏
  • 举报
回复
同意楼上的,iostream输出流对字符符输出重载.
oyljerry 2004-11-22
  • 打赏
  • 举报
回复
b是由于iostream输出流对字符串直接输出到\0结束
oyljerry 2004-11-22
  • 打赏
  • 举报
回复
不加[]就是地址了,加了就是数组中的数据
redjackwong 2004-11-22
  • 打赏
  • 举报
回复
加上[]和不加[]有什么区别??
不加[]表示数组的首地址,加上[]表示数组中某一个元素。

在[0]中没有数 如[]为什么会错??
你加上了[],表示取其中一个元素的值,但是没有告诉系统具体取哪个值,这在编译时时不允许的。

结果分析
a,由于是int型,输出其元素首地址。
a[0],等效于*a,取出首元素内容。
b,由于是char型,并用字符串初始化,所以输出字符串。
b[0],输出首元素内容。
zyg158 2004-11-22
  • 打赏
  • 举报
回复
加上[]和不加[]有什么区别
不加[]表示地址,加上[]表示某一个元素
a,它的地址的值0012fecc
b,表示字符串b的首地址,所以会将字符串显示出来

在[0]中没有数 如[]为什么会错
你加上了[],表示取其中一个元素的值,但是不指定具体数字,
谁知道你要取哪个?当然会出错了
dragonzxh 2004-11-22
  • 打赏
  • 举报
回复
又一个强问题,这种问题还是自己看书来得深刻。。。。。。
geland 2004-11-22
  • 打赏
  • 举报
回复
在[0]中没有数 如[]为什么会错

标准不允许的!
xuzheng318 2004-11-22
  • 打赏
  • 举报
回复
定义数组呀!

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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