[英]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.