簡體   English   中英

C數組初始化,都可以接受嗎?

[英]C array initialisation, are both acceptable?

這可能看起來很簡單,但當我搜索時,我似乎無法找到它。

我只是想知道這兩種初始化方法和數組是否相同,還是有一種首選的方法呢? ANSI C標准對此有何看法?

int a[3] = {1, 2, 3};

和...

int a[] = {1, 2, 3};

int a[3] = {1, 2, 3}; 沒關系

但是int [] = {1, 2, 3}; 肯定是語法錯誤。

但如果你的問題是關於int a[] = {1, 2, 3}; 那是一個有效的陳述。

第一個工作,但第二個將給出語法錯誤。 如果你使用...... 像這樣:

int a[5]={1};

其他4個整數將初始化為0。

當你想在數組中有更多的空間而你只想在聲明中設置其中一些時,通常會使用添加數組的大小。 在其他情況下,我個人更喜歡第二種表示法,因為它可以防止由於大小較小而占用更多大小或編譯錯誤,這只是因為你的數組大小錯誤。 如果你有一個大小的const值,並且你使用它幾次,那么第一個符號將更可靠。 所以你的答案取決於你的程序。

int a[CONST_SIZE] = {1,2,3};
int a[] = {1, 2, 3};

我覺得你第二個做錯了! 但如果第二個是:

int b[] = {1, 2, 3};

這兩行將具有完全相同的結果。
兩個數組的數組大小為3 * sizeof(int)
這是您決定使用哪條線。 第一行的優點是,您可以輕松地查看數組大小而無需計算括號中的元素,但它在源代碼文件中使用了1個字節;-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM