【发布时间】:2022-08-12 23:12:08
【问题描述】:
我知道使用 const char* 是指向常量字符的可修改指针。因此,我只能修改指针,而不能修改字符。因此,我不明白为什么允许我这样做:
const char* str{\"Hello World\"};
str = \"I change the pointer and in turns it changes the string, but not really.\";
这是如何运作的?内存中是否有存储所有字符的地方,我可以随意指向它们?此外,str 的地址在整个过程中不会改变。由于唯一可以改变的是地址,我真的不明白这是怎么回事。
也许问题的一部分是我试图理解这一点,就好像字符串是一个整数一样。如果我做:
int number{3};
const int* p_number{&number};
*p_number = 4;
这是无效的,因此我希望 str 不能被修改。换句话说,我在哪里指向,以便“Hello World”变成“我改变了指针,这改变了字符串”?
标签: c++