关于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 展开
string str1;
string str2[10];
string str3="hello";
string str4[10]="hello";
string str5[10]={};
另外用char代替string也一样吗?
谢谢!O(∩_∩)O 展开
2个回答
展开全部
string str1; // 可以
string str2[10];//可以
string str3="hello";//可以,注意中间过程,先调用string的带char* 构造函数,然后调用复制构造函数
string str4[10]="hello";//不可以,数组不能这样初始化
string str5[10]={};//可以 初始化为空字符串
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 的方法。
展开全部
string str4[10]="hello";
string str5[10]={};
这两个不可以,原因:数组初始化要加{},并且至少写1个元素。
另外用char代替string也一样吗?
不一样
char str4[10]="hello";是对的
char str3="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类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询