关于C++中的string初始化问题

请问以下几种情况哪种可以?不可以的原因?stringstr1;stringstr2[10];stringstr3="hello";stringstr4[10]="hell... 请问以下几种情况哪种可以?不可以的原因?
string str1;
string str2[10];
string str3="hello";
string str4[10]="hello";
string str5[10]={};
另外用char代替string也一样吗?
谢谢!O(∩_∩)O
展开
 我来答
zhou2214
2013-07-27 · TA获得超过706个赞
知道小有建树答主
回答量:495
采纳率:0%
帮助的人:512万
展开全部
string str1; // 可以
string str2[10];//可以
string str3="hello";//可以,注意中间过程,先调用string的带char* 构造函数,然后调用复制构造函数
string str4[10]="hello";//不可以,数组不能这样初始化
string str5[10]={};//可以 初始化为空字符串
追问
改为:
string str4[10]={"hello"};还是string str4[10]={hello};?
另外请问string和char初始化的区别?
追答
string str4[10]={"hello"};// 这个是对的

string 是标准库里面给你写好的类,你看一下它所有的构造函数就知道它所有的初始化方法了。

char是c语言就有的内置类型,跟string就不是一个级别的。

char a; char a(97); char b=a; 也就这么几个定义char 的方法。
百度网友746d508
2013-07-27 · TA获得超过578个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:178万
展开全部
string str4[10]="hello";
string str5[10]={};
这两个不可以,原因:数组初始化要加{},并且至少写1个元素。

另外用char代替string也一样吗?

不一样
char str4[10]="hello";是对的
char str3="hello"; 是错的,类型不匹配。
更多追问追答
追问
char str6;
这样行不行?

另外数组初始化没有元素不是默认全部为0吗?C++11标准?
追答
char str6; 这个语法上是可以的,但是这是字符,不能用于存放字符串。
默认为0指的是你声明了10个元素的数组,初始化了2个,剩余的会默认为0的。
另外全局变量定义时没初始化,不管是不是数组系统也会默认给0值的。
想彻底掌握的话,你可以去看下string类的接口。并尝试自己写也个string类。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式