我想在編譯期間用最少量的手動工作來初始化char數組。有沒有辦法用混合字符和「字符串」來初始化數組
是否有此
char arr[5] = {0x4, 'a', 's', 'd' 'c'};
如
char arr[5] = {0x4, "asdc"};
我想在編譯期間用最少量的手動工作來初始化char數組。有沒有辦法用混合字符和「字符串」來初始化數組
是否有此
char arr[5] = {0x4, 'a', 's', 'd' 'c'};
如
char arr[5] = {0x4, "asdc"};
你可以在字符的int字符串轉義序列整合工作簡寫格式:
char arr[6] = { "\x04asdc"};
編輯:更正陣列的長度。
這個問題是,字符串'「\ x04asdc」'是*六個*字符長。指定一個較小的數組大小是不正確的。 –
@Someprogrammerdude請忽略我以前的評論,我不小心在C頁面結束了。 nul終結者的確在C++中明確授權。 – Quentin
不,這是不可能的。但是,你可以做
char arr[] = "\04asdc";
這樣做的問題是,是不會正是像你展示原始數組,因爲它包含一個字符串結束,因此有六個要素。
這不是[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)?你爲什麼想要那個'arr'?如果你想在編譯時初始化它,它不應該是'const'嗎? – Walter