2011-11-12 56 views
0

我搜索了四周,還沒有找到答案。我想知道的是:常量數組的默認值(當並非所有的索引都被明確設置)?

如果我宣佈一個static unsigned char const ARRAY[256] = { [0] = <some_value> };, 我能想到的不確定因素(在這種情況下,所有,但在指數0元素),以有一定的價值,否則將是隨機的?

我需要這個了,不會有充滿所有元件的恆查找表,但不是太大,所以浪費了一些空間是沒有問題的。

建議更合適的數據類型或約定的歡迎。

謝謝!

回答

3

陣列的其餘部分將被初始化爲零。

此外,您可以初始化數組中的多個元素,例如:

char arr[10] = {1, 2, 3}; 

將創建和初始化數組ARR到:

index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 
--------------------------------------------- 
value | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 
+0

謝謝你,現在我可以放心地走我的路。 :) – Matej

-1

如果你想要一些特定的行爲,然後以這種方式初始化它。假設你的程序正確運行所依賴的編譯器的一些怪癖只是在尋求麻煩。

+2

未在初始化程序中指定的元素具有明確定義的值。 – nos

0

如果你想明確一下,你正在使用的GNU C,總是有...

char array[256] = {[0 ... 255] = 0, [7] = 'f',/*and so on...*/}; 
+0

不,沒有*總是*'...'。這是一個gcc特定的擴展,而不是該語言的一部分。 –

+0

你是對的;編輯修復。 – Dave

+0

使用範圍爲0是多餘的,但對於其他值可能有用。 – u0b34a0f6ae

相關問題