在我的C ++课程中,使用了这种初始化。
char *a = "abcd";
但是,当我使用它时,编译器 抱怨:
类型“ const char *”的值不能用于初始化实体 类型为“ char *”
* a应该是指针。请问有什么问题?我使用Visual Studio 2017
答案 0 :(得分:4)
您需要指定const
const char *a = "abcd";
原因是字符串"abcd"
是一个常量,因此不应分配给非const指针。在旧的C ++(AFAIK)中是可以容忍的,但是自C ++ 11起就没有,并且带有/permissive-
的VS2017做正确的事情,并禁止这种不良做法。
答案 1 :(得分:2)
const char *a = "abcd";
您忘记了常量。