我认为const char *表示指向不可变字符串的可变指针。
但是,当我这样做时
#include <iostream>
using namespace std;
const char *name1 = "Alex";
int main()
{
name1 = "John";
cout << name1 << endl;
}
它只是打印约翰,没有任何问题。我想知道为什么程序将name1视为字符串并使其可变?
我想知道为什么程序将name1视为字符串并使其可变?
并非如此,您只是为指针分配了一个新地址(的地址"John"
)。您自己说过它“指向不可变字符串的可变指针”。您修改了指针,并尝试实际修改指针,类型系统会阻止您执行该操作(由于const限定符)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句