C++中string和char的区别以及直接初始化和拷贝初始化
2016-10-27 22:01
387 查看
string和char的区别
‘\0’是c/c++语言中的字符串结束符,在ASCII字符集中对应空字符NULL。
使用string类,必须要在头文件写明#include<string>,使用string会在字符串的末尾自动加入一个\0,而且字符串使用双引号,char不在末尾自动加0,一般用单引号——char
a = 'A';
string s1("hello");
直接初始化和拷贝初始化
如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化。
string s5="hiya"; //拷贝初始化
string s6("hiya"); //直接初始化
string s7(10,‘c’)//直接初始化,内容为ccccccccc
(C++ Primer 第5版 P76)
‘\0’是c/c++语言中的字符串结束符,在ASCII字符集中对应空字符NULL。
使用string类,必须要在头文件写明#include<string>,使用string会在字符串的末尾自动加入一个\0,而且字符串使用双引号,char不在末尾自动加0,一般用单引号——char
a = 'A';
string s1("hello");
直接初始化和拷贝初始化
如果使用等号(=)初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化。
string s5="hiya"; //拷贝初始化
string s6("hiya"); //直接初始化
string s7(10,‘c’)//直接初始化,内容为ccccccccc
(C++ Primer 第5版 P76)
相关文章推荐
- 【原创】c++拷贝初始化和直接初始化的底层区别
- c++拷贝初始化和直接初始化的底层区别
- C++ char * 和char[]的区别以及怎样与string类型进行转换
- char *和char数组的区别(深拷贝和浅拷贝的观点)以及内核访问用户空间
- c++中构造函数初始化的方法以及主要区别
- C++使用初始化清单和直接在构造函数内初始化成员变量的区别
- 深入理解c++中char*与wchar_t*与string以及wstring之间的相互转换
- String,CString,TCHAR,char间区别和联系以及相互转化 【转】
- c++中构造函数初始化的方法以及主要区别
- C++编译优化之RVO(Return Value Optimization) &&C++直接初始化与赋值初始化的区别
- c++的字符串char与string相互转化,以及string的,切割,替换字符,字符串相关的函数整理
- C++的一大误区——深入解释直接初始化与复制初始化的区别
- String、StringBuffer与StringBuilder之间区别 以及String 直接赋值和new后赋值区别
- C++的一大误区——深入解释直接初始化与复制初始化的区别
- 转载--c++中构造函数初始化的方法以及主要区别
- C++使用初始化清单和直接在构造函数内初始化成员变量的区别
- c++的字符串char与string相互转化,以及string的,切割,替换字符,字符串拼接方法(object向c++转型系列教程2)
- char *和char数组的区别(深拷贝和浅拷贝的观点)以及内核访问用户空间
- C++的一大误区——深入解释直接初始化与复制初始化的区别
- C++直接初始化与复制初始化的区别深入解析