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

Why can you put multiple characters in C++ char*

本文关键字:字符 为什么 C++      更新时间:2023-10-16

我不知道这是如何工作的。

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

这是怎么回事?

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

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

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

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