簡體   English   中英

使用Curly Brackets(Braces)圍繞變量C ++

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

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