[英]Use of Curly Brackets (Braces) Around a variable C++
我正在編程類中學習2D數組。 我的老師用了一些東西而沒有解釋它,我很好奇為什么我們用它。 由於它與符號有關,我不確定如何谷歌或搜索它,因為這些符號用於搜索本身。 無論如何代碼是這樣的:
int small[26]= {0}, large[26]={0}, i;
為什么0周圍需要花括號?
該代碼的程序是檢查文件的一部分,並查找字母表中的每個字母並單獨計算它們。
它寫得更簡單
int small[26]= {}, large[26]={}, i;
花括號表示在這種情況下數組的初始化列表。
假設您要定義一個包含元素1,2,3,4,5的數組。
你可以寫
int a[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
但是,C ++允許在定義數組時分配它們。 相同的記錄將是
int a[5] = { 1, 2, 3, 4, 5 };
如果初始化程序小於數組的大小,則剩余的元素將由零初始化。 例如
int a[5] = { 1, 2 };
在這種情況下,a [0]將等於tp 1 a [1]將等於2並且所有其他元素將等於0。
您可以省略數組的大小。 例如
int a[] = { 1, 2, 3, 4, 5 };
在這種情況下,編譯器將分配與初始化程序列表中的初始化程序一樣多的數組元素。
記錄(僅在C ++中有效。在C中不允許)
int a[5] = {};
相當於
int a[5] = { 0 };
也就是說,數組的所有元素都將被初始化為0.在最后一條記錄中,第一個元素由零顯式初始化,所有其他元素也由零初始化,因為初始化程序列表中的初始化程序未指定。
與初始化標量對象的方式相同。 例如
int x = {10};
標量對象的唯一區別是您只能指定一個初始化程序。 您甚至可以在沒有賦值運算符的情
int x { 10 };
你也可以寫
int x {};
在這種情況下,x將被初始化為0。
int Array[26]= {0};
將該數組中的所有元素初始化為0。
正如BryanChen在下面提到的那樣:
Note: int Array[26]= {1}; will initialize first element to 1 and others to 0.
默認情況下,本地范圍的常規數組(例如,在函數內聲明的數組)保持未初始化。 這意味着它的所有元素都沒有設置為任何特定值; 它們的內容在聲明數組時未確定。
但是,通過將這些初始值括在大括號{}中,數組中的元素可以在聲明時顯式初始化為特定值。
注意
int array [constant] = {};
默認初始化所有值。 int
的默認初始值設定項為0。
int small[26]= {0};
將第一個數字設置為0,默認初始化其余數字。
一般來說:
int array [constant] = {value initialize all indices listed here,
the rest are default initialized};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.