C ++将char添加到指针

时间:2018-08-28 13:46:50

标签: c++ pointers

根据我的理解,字符串只是char的数组,所以如果我有对某些char值的指针引用,我应该做不到:

*dest = "char"

但是那不行,我必须做:

        *dest = 'c';
        *dest = 'h';
        *dest = 'a';
        *dest = 'r';

2 个答案:

答案 0 :(得分:3)

  

因此,如果我有指向某些char值的指针引用,我应该做不到:

*dest = "char"

不,您不应该这样做。

*destchar。单个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";