7

我无法弄清楚这是如何工作的。

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

// This works
char* a;
a = "aaa";

这是怎么回事?

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

4

2 回答 2

10

您没有将字符放入char*. 您正在由编译器确定的部分内存中创建一个字符数组,并指向该char*数组的第一个字符。

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

于 2013-11-13T02:41:23.900 回答
2

第二个是指向一串字符的指针,而不是单个字符。教程。

于 2013-11-13T02:41:54.223 回答