关于char[]的困惑

Confusion regarding char[]

本文关键字:char 关于      更新时间:2023-10-16

我最近开始用C++编程,这就是我面临很多困惑的原因。我想知道使用以下代码有什么问题:

char interface[20];
interface="USB01";

C++语言不允许分配给数组。

但是,您可以初始化数组。语法相似,但赋值运算符与声明使用在同一语句中:

char interface[20] = "USB01";

然而,在C++中,通常会使用像std::string这样的标准容器,而不是C字符串。这些更容易使用,并且允许自然分配。

std::string interface;
....
interface = "USB01";

请注意,我们不需要预先决定为字符串保留多少空间。这只是使用标准字符串类的众多好处之一。

你不能像那样分配数组,但你可以初始化它们:

 char interface[20] = "USB01";

在C++中,您应该使用正确的C++字符串,即std::string,而不是C风格的char *字符串:

 std::string interface;
 interface = "USB01";