字符:单个的,单引号;
字符串:多个的,也可以是单个的,或者空的,双引号;
本质:
char属于基础类型(C++),char类型的长度是固定的,在C++中它可能是1个字节,或者2个字节(取决于是否为Unicode Char)。
string是一个模板类型,也就是一个class(C++)。也就是无法通过sizeof来取得,因为它不是一个基础类型,它本身并不固定长度,而取决于内部包含的 字符。
用户角度:
char类型:用单引号,例如:‘陈’,’A’
如果在C++中,将’陈’赋值给一个char类型,而不是wchar_t类型,会有问题,因为汉字是两个字节的,char是一个字节的。
l例如:
char a = 'h';
cout << a << endl;
char b = '陈';
cout <<b << endl;
char c = 'j';
cout << c << endl;
输出结果:
注意因为char是内置类型,而string是一个类,所以需要#include<string>
char a = 'h';
cout << a << endl;
char b = '陈';
cout <<b << endl;
char c = 'j';
cout << c << endl;
string d = "陈";
cout << d << endl;
char name[20];
string name;
第一行是c版本的字符数组,在c里面是没有string的,都是用字符数组代替string;
而现在c++有了string之后,就很少用char[]了,字符串基本山够可以代替字符数组,一般教材在没有讲到string时候,
都会用char来存储名字之类的字符串,因为string涉及到类的概念,char属于字符串表示法,string属于c++
char字节,string 是class,
string是动态的内存,char[]是堆栈上的内存。