为什么你可以在C++ char中加入多个字符*

Fil*_*inx 4 c++ string pointers char

我无法弄清楚它是如何工作的.

// This doesn't work (obviously)
char a;
a = "aaa";

// This works
char* a;
a = "aaa";
Run Code Online (Sandbox Code Playgroud)

怎么运作?

由于char类型只存储一个字符或1个字节的数字,当您通过指针访问它时,如何在其中存储更多字符?

Ben*_*ley 8

你没有把角色放进去char*.您将在编译器确定的内存部分中创建一个字符数组,并指向该char*数组的第一个字符.

该数组实际上是const,因此您不能将其分配给非const指针.但由于历史原因,您仍然可以在许多C++实现中使用.但是,它在C++ 11中被正式定为非法.

  • 并且以这种方式分配(字符串文字为`char*`),简单来说,不推荐. (3认同)