// char* s = "12";//为什么使用这样的方式会报错?
char s[] = "12";
char t;
t = s[0];
s[0] = s[1];
s[1] = t;
char* s = "12";
这里s指向的是常量区的字符串12,不能修改。
必须用
char [] temp = "12";
char *s = &temp[0];
有错误截图吗,我的不报错
char* s={"12"};
那样s就指向常量区,
s[0] = s[1];
s[1] = t;//那么这2句都有问题
不会报错的,char *s1 = "hello"; char *s1 的s1,而指针是指向一块内存区域,它指向的内存区域的大小可以随时改变,而且当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
“12” 是 const char* 。可以用 char * p= const_cast("12");
const char* s= "12";
也会有错吗?
在C++字符串中不合法语言标识符有哪些