我在C中知道我可以做以下事情。在聲明之外初始化C數組?
int test[5] = {1, 2, 3, 4, 5};
現在這只是聲明數組時才合法。不過,我想知道爲什麼這是後來不合法?但是後來在這個程序中,執行以下操作是不合法的。
test[5] = {10, 20, 30, 40, 50};
或類似的東西。爲什麼是這樣?我知道這不合法,我不是在抱怨,但是有人能給我一個更爲技術性的解釋,爲什麼我不能這樣做? (即不要只說C規範不允許它或類似的東西)
我假設它必須做的事情,當內存獲取分配在堆棧上的數組,因此在那一點上C可以自動填寫我的值,但爲什麼不能在以後做?
謝謝你們
所以,如果,假設,有人的情況下,在C標準只是不會允許這種(儘管這在技術上是可能的),我們不得不做出一些不同的東西而不是?或者你是不想得到答案?只是想確定。 – 2012-03-05 15:05:33
@NiklasB .:我認爲在這種情況下,一個有爭議的受過教育的猜測是爲了*爲什麼C語言的設計者決定忽略這個特性將會是一個很好的答案。 – Heinzi 2012-03-05 15:07:54
@Heinzi:哦,我明白了:) – 2012-03-05 15:08:29