今天偶然发现对一个知识掌握不深刻---字符串的定义;
字符串定义看起来很简单;
1、包含string头文件可以这样定义:
string S=“abcde”;
此时S是一个字符串,内容是abcde;
2、char S[6] = "abcde";
此时S是一个字符串数组,内容是“abcde”,数组名字S表示字符串数组的地址,
3、const char* S = "abcde";
此时如果定义char* S = "abcde"会出现编译错误,原因是"abcde"的类型是const char *类型,而S是char *类型,
在这种情况下S只是可读,不可更改,任何对S内容的更改都会出现错误,比如S[1]=b;以上两种定义方式均不可修改字符串中的值。
编译的时候会提示只可度error: assignment of read-only location