我无法弄清楚这是如何工作的。
// This doesn't work (obviously)
char a;
a = "aaa";
// This works
char* a;
a = "aaa";
这是怎么回事?
由于char
type 只存储一个字符或 1 个字节数,当您通过指针访问它时,如何在其中存储更多字符?
您没有将字符放入char*
. 您正在由编译器确定的部分内存中创建一个字符数组,并指向该char*
数组的第一个字符。
该数组实际上是 const,因此您不应该将其分配给非常量指针。但是由于历史原因,您仍然可以在许多 C++ 实现中。然而,它在 C++11 中被正式定为非法。
第二个是指向一串字符的指针,而不是单个字符。教程。