通过指针进行C ++初始化char数组

时间:2018-11-18 19:12:15

标签: c++ pointers

在我的C ++课程中,使用了这种初始化。

char *a = "abcd";

但是,当我使用它时,编译器 抱怨:

  

类型“ const char *”的值不能用于初始化实体   类型为“ char *”

* a应该是指针。请问有什么问题?我使用Visual Studio 2017

2 个答案:

答案 0 :(得分:4)

您需要指定const

const char *a = "abcd";

原因是字符串"abcd"是一个常量,因此不应分配给非const指针。在旧的C ++(AFAIK)中是可以容忍的,但是自C ++ 11起就没有,并且带有/permissive-的VS2017做正确的事情,并禁止这种不良做法。

答案 1 :(得分:2)

 const char *a = "abcd";

您忘记了常量。