根据我的理解,字符串只是char
的数组,所以如果我有对某些char值的指针引用,我应该做不到:
*dest = "char"
但是那不行,我必须做:
*dest = 'c';
*dest = 'h';
*dest = 'a';
*dest = 'r';
答案 0 :(得分:3)
因此,如果我有指向某些char值的指针引用,我应该做不到:
*dest = "char"
不,您不应该这样做。
*dest
是char
。单个char
对象只能容纳一个char
对象。字符串是字符数组。您无法将字符串分配给char
。
但是,如果您有一个指向某些 const char值的指针引用,则可以这样分配指针:
dest = "char"
这将使所引用的指针指向字符串文字。但是,这与*dest = 'c'; *dest = 'h'; ...
不同。指针分配修改指针并保持先前指向的字符不变,而分配给指向字符则修改指向字符,同时保持指针不变。
答案 1 :(得分:2)
我猜想是通过'string'提到了C风格的字符串,所以char*
*dest = "char"
根据您的说法,dest是一个char&*
,当您取消引用它时,您会得到一个char
,类型"char"
是const char*
,因此您正在尝试将const char*
分配给char
,这是编译时错误。
您应该使用std::string
,这将使您能够执行上述任务,并为您分配和释放内存。
std::string dest = "char";