2017-08-02 76 views
0

我想在編譯期間用最少量的手動工作來初始化char數組。有沒有辦法用混合字符和「字符串」來初始化數組

是否有此

char arr[5] = {0x4, 'a', 's', 'd' 'c'}; 

char arr[5] = {0x4, "asdc"}; 
+0

這不是[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)?你爲什麼想要那個'arr'?如果你想在編譯時初始化它,它不應該是'const'嗎? – Walter

回答

1

你可以在字符的int字符串轉義序列整合工作簡寫格式:

char arr[6] = { "\x04asdc"}; 

編輯:更正陣列的長度。

+4

這個問題是,字符串'「\ x04asdc」'是*六個*字符長。指定一個較小的數組大小是不正確的。 –

+0

@Someprogrammerdude請忽略我以前的評論,我不小心在C頁面結束了。 nul終結者的確在C++中明確授權。 – Quentin

1

不,這是不可能的。但是,你可以

char arr[] = "\04asdc"; 

這樣做的問題是,是不會正是像你展示原始數組,因爲它包含一個字符串結束,因此有六個要素。