W.J*_*Joe 4 c++ string pointers
我以为const char*表示一个指向不可变字符串的可变指针.
但是,当我这样做时,
#include <iostream>
using namespace std;
const char *name1 = "Alex";
int main()
{
name1 = "John";
cout << name1 << endl;
}
Run Code Online (Sandbox Code Playgroud)
它只是打印约翰并没有显示任何问题.我想知道为什么程序将name1视为字符串并使其可变?
我想知道为什么程序将name1视为字符串并使其可变?
它没有,你只是为指针(地址"John")分配了一个新地址.你自己说"一个指向不可变字符串的可变指针 ".你修改了指针,并且你试图实际修改指针,类型系统会阻止你这样做(由于const限定符).