2014-10-07 99 views
-2

我最近開始用C++編程,這就是爲什麼我面臨很多困惑。 我想知道什麼是錯在用下面的代碼:關於字符混淆[]

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

嘗試使用'std :: string' – 2014-10-07 08:47:43

+0

雖然對於C,上面的問題及其答案適用於此處。 – 2014-10-07 08:49:58

回答

1

C++語言不允許您分配給數組。

但是,您可以初始化數組。語法是相似的,但賦值運算符是在同一個語句聲明中使用:

char interface[20] = "USB01"; 

然而,在C++中,人們通常會用一個標準集裝箱像std::string而不是C字符串。這些使用起來更容易,並且允許自然分配。

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

請注意,我們不需要決定預留多少空間來預留字符串。這只是使用標準字符串類的許多好處之一。

+0

感謝您的幫助,我會牢記您的觀點。 – SkRuddy 2014-10-07 08:57:45

1

不能分配陣列那樣的,但你可以初始化他們:

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