#include
using namespace std;
int main()
{
char *str = "Linux";
*str = 'T'; //这句话出错了
cout << str << endl;
return 0;
}
错误:0x000F6C08 处有未经处理的异常(在 hannuota bahuanghou.exe 中): 0xC0000005: 写入位置 0x000FDA8C 时发生访问冲突。
就这一小段代码出错了 我知道出错的地方 但不知道原因
望各位指点指点
char *str = "Linux"之后,str内容不可以在变
char *str = "Linux";//"Linux"在字符常量区
*str = 'T'; //*str在这相当于str[0],字符常量区不可改变
常量字符串不允许修改,修改就会被编译器异常出错
char *str = "Linux"; 这句话相当于申明了一个字符串常量,不在堆栈中,而是存储在常量区,常量区的内容是不允许被修改的,你可以申明为字符串数组,
存储在堆栈中,可以修改。