初始化char数组

时间:2019-05-07 10:12:28

标签: c++

我只是想问一下下面的代码是否曾经被C ++认可为任何版本

由于我的讲师向我透露了这可行,但是当我尝试时,出现编译器错误。

char name[20];
name = "some random name";

我知道用于初始化名称变量的不同方法,但是只要让我知道它是否起作用即可。

2 个答案:

答案 0 :(得分:0)

否。

如果您的教练真的这么说,那就错了。

C和C ++都不允许将字符串文字分配给任何类型的现存数组。

不过,您可以通过这样的文字初始化 char数组:

char name[20] = "some arbitrary name";

…但是您没有进行初始化;您正在执行分配。 (出于历史原因,一些较早的文本使用“ initialise”来表示“首次分配”;在C ++中不正确。)

在C ++中,我们倾向于使用动态分配std::string,但确实允许分配:

std::string name;
name = "some arbitrary name";
name = "and now another one";

由于将字符串当作字符串处理的局限性而引入。

答案 1 :(得分:-2)

我确定您的老师是说:

char name[20]="This is a name";

甚至

char name[]="This is a name";