[英]Difference between array[n] and array[]?
例如,之間有什么區別嗎?
int array[]={1, 2, 3, 4, 5};
和,
int array[5]={1, 2, 3, 4, 5};
對於第一種情況,編譯器需要自己計算元素的數量,這可能需要一些時間( {...}
的1234332534個元素),所以第二種情況比第一種情況有效?
這個數組聲明:
int array[] = {1, 2, 3, 4, 5};
與以下內容完全相同:
int array[5] = {1, 2, 3, 4, 5};
元素的數量是在編譯時計算的,因此沒有與之關聯的運行時成本。
第一個聲明的優點是它不需要程序員手動計算元素的數量,因此在這個意義上它是一個更有效的數組聲明。
只要[]
之間的顯式元素計數與{}
之間的初始值設定項數相同,就沒有區別。
關於“效率”的問題沒有實際意義。 數組大小在編譯時確定,這意味着它對代碼的效率沒有影響。 並且因為無論如何編譯器都必須解析初始化列表,它對編譯的效率沒有實際影響。
†。 另一方面,大型全局陣列是二進制資源經常被包含在固件中以便閃存到嵌入式設備上的方式。 但我不認為任何人都會認為這種蠻力方法適用於大於幾MB的任何東西。
沒有區別,除了你,程序員,不必確定數組中有多少元素。 編譯器仍然會計算元素以分配適當的數量,因此兩者都需要編譯器使用相同的時間來編譯。
在第二種情況下,如果給出錯誤的值來初始化存儲器,則預編譯器將捕獲錯誤。 這就是它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.