【发布时间】:2018-01-15 23:59:21
【问题描述】:
为什么这个函数会起作用?
我认为这不是在 C 中复制 char* 的正确方法。
#include <stdio.h>
int main() {
const char* original = "TEST";
char* copy;
copy = original;
printf("%s\n", original);
printf("%x\n", &original);
printf("%s\n", copy);
printf("%x\n", ©);
return 0;
}
【问题讨论】:
-
copy = original;是一个错误,因为在没有强制转换的情况下丢弃了const限定符。如果您没有看到错误消息,请重新配置您的编译器,以便出现错误消息。 -
请拨打tour 并学习如何进行研究。特别是,看看其他人是否问过类似的问题:stackoverflow.com/search?q=%5Bc%5Dcopy+string
-
学习语言并专门阅读有关指针的信息,char * 是指针,您不是在创建副本,而是指向原始文本,它也是指向文本“TEST”的指针。 original 是一个 const 指针,这意味着您不能重新分配它。副本可以移动。