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