关于字符混淆[]

问题描述:

我最近开始用C++编程,这就是为什么我面临很多困惑。 我想知道什么是错在用下面的代码:关于字符混淆[]

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

尝试使用'std :: string' – 2014-10-07 08:47:43

+0

虽然对于C,上面的问题及其答案适用于此处。 – 2014-10-07 08:49:58

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

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

char interface[20] = "USB01"; 

然而,在C++中,人们通常会用一个标准集装箱像std::string而不是C字符串。这些使用起来更容易,并且允许自然分配。

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

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

+0

感谢您的帮助,我会牢记您的观点。 – SkRuddy 2014-10-07 08:57:45

不能分配阵列那样的,但你可以初始化他们:

char interface[20] = "USB01"; 

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

std::string interface; 

interface = "USB01"; 
+0

谢谢你的回答,现在已经很清楚了。另一个小问题 - >假设我们在头文件中有一个声明为“char \t BitmapNameF [512];”,并且我已经将它包含在y程序中。所以现在如何将值传递给BitmapNameF? – SkRuddy 2014-10-07 08:56:19

+0

@SkRuddy:如果您还有其他问题,请将其作为新问题发布 - 评论并不是处理其他问题和答案的好方法。 – 2014-10-07 08:58:07

+0

当然我会发布一个新问题。 – SkRuddy 2014-10-07 08:59:39