C++字符串跟字符数组的关系。求文字解释。拒绝概念。

 我来答
yanghuicool
2011-06-25 · TA获得超过439个赞
知道小有建树答主
回答量:196
采纳率:0%
帮助的人:238万
展开全部
简单的来讲 字符串就是一串字符,系统知道他是字符串 而字符数组 则是一个数组,系统不会自动识别为字符串,可以输出单个字符,一个一个来看 想要系统识别为字符串除要在数组后加上'\0'表示结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户21959
2011-06-25 · TA获得超过227个赞
知道答主
回答量:443
采纳率:0%
帮助的人:251万
展开全部
解决办法很简单
将 main 函数里的 n=new char[12]; 这一句放到 while 循环内 cout<<"input num:"<<endl; 的上面,

原理:
首先你读取一个数字111,它保存在哪儿?保存在char *n里,我们假设你申请的地址为0x0001,那么现在这个地址里存的数据就是111;然后你构造oo对象的时候,参数传递了一个指针,也就是说你在o[0]里的char *num保存的地址也是0x0001。当你读取第二个数222的时候,你给*n重新赋值为222,也就是地址0x0001的位置保存了222。同样在o[1]内*num保存的地址也是0x0001。这样当你输出的时候,无论是o[0]还是o[1]你输出的都是地址0x0001的数据。所以输出就是222,222.如果你将n=new char[12]; 这一句放到 while 循环内的话,你第二次进while语句申请的地址也许就是0x0002,这样就可以将输入的数据依此输出了。
另外,申请内存一定要记得释放,不然会造成内存泄露。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
只注视着妳
2011-06-25 · TA获得超过1004个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:102万
展开全部
都是用来存放一组字符的顺序结构,字符数组用数组长度(分配时就限定了)限制了存取的范围,而字符串用结束符号来表示存储的范围。
还有一点,字符串一般来说是从宏观上来看的,其里面的数据是看成一个整体来处理的。而字符数组一般我们都是从微观方面来看的,我们看的是一个一个的数据元素。
以上是个人观点,仅供参考。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式