https://blog.csdn.net/u010141928/article/details/72878386
1. string类型,直接赋值,例如:string str="abcd";
2. 对于char数组型变量,在声明时可以直接赋值,例如:char str[]="abcde";
当然也可以用char c[3]="ab"来进行初始化,但是这样做需要我们明确知道字符串的长度到底为多少,否则假如这里我们的字符串为“abc”,那么在进行赋值的时候就会报错,因为字符串的长度还有加上'\0',所以超过了3,所以会报错!!所以为了更方便最好不要指定大小。
3. 对于char型指针,在声明时可以直接赋值,例如:char *ch="abc";
3.1右值 “abc”的返回值是 char const *
int main() { auto a= "test1"; cout << typeid(a).name()<<"\n"; cout << a; }
输出值(左值类型 const char * 或者 char *都可以直接输出字符串):
char const * test1
3.2 对于char数组型变量,在非声明的时候进行赋值,不能直接赋值
比如:
char str[64];
str="abcdf";//对数组的不合法赋值,而且长度为6,和64不等
正确的做法为借助于strcpy函数,例如:
char str[64]';
strcpy(str,"abcde");
char *