發(fā)布于:2021-01-26 14:56:02
0
376
0
什么是數(shù)組?
數(shù)組是按順序存儲相同數(shù)據(jù)類型元素的數(shù)據(jù)結(jié)構(gòu)。C++數(shù)組的大小是固定的。
可以將數(shù)組視為類似數(shù)據(jù)類型的變量集合。您可以聲明一個(gè)變量(數(shù)組)并向其中添加各個(gè)變量的值,而不是聲明每個(gè)變量并分別為其賦值。添加到數(shù)組中的每個(gè)值都由一個(gè)索引標(biāo)識。
我們?yōu)槭裁葱枰獢?shù)組
數(shù)組在任何編程語言中都非常重要。它們提供了一種更方便的方法,將變量或類似數(shù)據(jù)類型的數(shù)據(jù)集合存儲在一起,而不是單獨(dú)存儲它們。數(shù)組的每個(gè)值都將分別訪問。
在C++中聲明一個(gè)數(shù)組
C++中的數(shù)組聲明涉及說明數(shù)組所存儲的元素的類型和數(shù)量。語法:
type array-Name [ array-Size ];
在C++中聲明一維數(shù)組的規(guī)則。
類型:類型是要存儲在數(shù)組中的元素的類型,它必須是有效的C ++數(shù)據(jù)類型。
數(shù)組名稱:陣列名稱是要分配給陣列的名稱。
數(shù)組大?。簲?shù)組大小是要存儲在數(shù)組中的元素?cái)?shù)。必須為整數(shù)且大于0。
例如,您可以創(chuàng)建一個(gè)名為age的數(shù)組,并按如下方式存儲5個(gè)學(xué)生的年齡:
int age[5];
數(shù)組age將存儲代表不同學(xué)生年齡的5個(gè)整數(shù)。
數(shù)組初始化
數(shù)組初始化是將元素分配/存儲到數(shù)組的過程。初始化可以在單個(gè)語句中完成,也可以逐個(gè)完成。請注意,數(shù)組中的第一個(gè)元素存儲在索引0處,而最后一個(gè)元素存儲在索引n-1處,其中n是數(shù)組中元素的總數(shù)。
對于age數(shù)組,第一個(gè)元素將存儲在索引0中,而最后一個(gè)元素將存儲在索引4中。
讓我們使用age數(shù)組來演示如何進(jìn)行數(shù)組初始化:
int age[5] = {19, 18, 21, 20, 17};
{}中的元素總數(shù)不能超過[]中指定的值。元素19位于索引0處,18位于索引1處,21位于索引2處,20位于索引3處,17位于索引4處。如果不在[]中說明要存儲在數(shù)組中的元素?cái)?shù),那么數(shù)組的大小將只足以容納{}中添加的元素。例如:
int age[] = {19, 18, 21, 20, 17};
上面的語句將創(chuàng)建與上一個(gè)完全相同的數(shù)組。還可以使用數(shù)組的索引將一個(gè)元素指定給數(shù)組。例如:
age[3] = 20;
上面的語句將值20存儲在名為age的數(shù)組的索引3處。這意味著20將是數(shù)組的第4個(gè)元素。
數(shù)組的類型
有三種C++數(shù)組:
一維數(shù)組
多維數(shù)組
指向數(shù)組的指針
一位數(shù)組
這是一個(gè)數(shù)組,其中數(shù)據(jù)項(xiàng)僅在一維中線性排列。通常稱為一維數(shù)組。語法:
datatype array-name[size];
數(shù)組名稱是數(shù)組的名稱
大小是要存儲在數(shù)組中的項(xiàng)目數(shù)。
例如:
#include <iostream>
using namespace std;
int main()
{
int age[5] = { 19, 18, 21, 20, 17 };
for (int x = 0; x < 5; x++)
{
cout <<age[x]<<"n";
}
}
輸出:
以下是代碼截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用main()函數(shù),其中應(yīng)添加程序邏輯。
main()函數(shù)主體的開始。
聲明一個(gè)名為age的數(shù)組來存儲5個(gè)整數(shù)。5個(gè)整數(shù)也已初始化。
使用for循環(huán)創(chuàng)建整數(shù)變量x。
for循環(huán)體的開頭。
使用循環(huán)變量x迭代數(shù)組年齡的值并在控制臺上打印它們?!皘 n”是換行符,在每次迭代后打印在新行中。
for a循環(huán)主體的結(jié)束。
main()函數(shù)主體的結(jié)束。
這是一個(gè)數(shù)組,其中數(shù)據(jù)項(xiàng)被排列成一個(gè)數(shù)組。多維數(shù)組可以有任意數(shù)量的維數(shù),但二維和三維數(shù)組是常見的。語法:
datatype array-name[d1][d2][d3]...[dn];
數(shù)組名稱是將具有n個(gè)維度的數(shù)組的名稱。例如:
二維數(shù)組將數(shù)據(jù)存儲在具有一維數(shù)組的列表中。它是一個(gè)包含行和列的矩陣。要聲明2D數(shù)組,請使用以下語法:
type array-Name [ x ][ y ];
類型必須是一個(gè)有效的C++數(shù)據(jù)類型。將二維數(shù)組視為表,其中x表示行數(shù),y表示列數(shù)。這意味著您可以使用a[x][y]形式標(biāo)識二維數(shù)組中的每個(gè)元素,其中x是元素所屬的行數(shù),y是元素所屬的列數(shù)。
以下是如何初始化二維數(shù)組的示例:
int a[2][3] = {
{0, 2, 1} , /* row at index 0 */
{4, 3, 7} , /* row at index 1 */
};
在上面的例子中,我們有一個(gè)二維數(shù)組,可以看作是一個(gè)2x3矩陣。共有2行3列。元素0可以作為[0][1]訪問,因?yàn)樗挥谛兴饕?和列索引1的交叉點(diǎn)。元素3可以作為[1][2]訪問,因?yàn)樗挥谛兴饕?和列索引2的交叉點(diǎn)。
注意,我們只是添加了花括號來區(qū)分不同的元素行。初始化也可以按以下方式進(jìn)行:
int a[2][3] = {0, 2, 1, 4, 3, 7};
};
下面的C++示例演示如何初始化和遍歷2D數(shù)組:
#includeusing namespace std;
int main()
{
// a 2x3 array
int a[3][2] = { {0, 2}, {1, 4}, {3, 7} };
// traverse array elements
for (int i=0; i<3; i++)
for (int j=0; j<2; j++)
{
cout << "a[" <<i<< "][" <<j<< "]: ";
cout << a[i][j] << endl;
}
return 0;
}
輸出:
以下是上述代碼的截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用應(yīng)在其中添加代碼的main()函數(shù)。
main()函數(shù)主體的開始。
評論。C++編譯器將跳過此。
聲明3行2列的二維數(shù)組。項(xiàng)目也已添加到數(shù)組中。
評論。C++編譯器將跳過這個(gè).
創(chuàng)建一個(gè)變量i,用于循環(huán)。此變量將迭代數(shù)組的行索引。
使用for循環(huán)創(chuàng)建變量j。此變量將迭代數(shù)組的列索引。
循環(huán)體的開始。
在控制臺的方括號內(nèi)打印控制臺上變量i和j的值。
打印存儲在數(shù)組a的索引[i][j]處的值。
循環(huán)體的末尾。
如果程序運(yùn)行正常,main()函數(shù)應(yīng)該返回一個(gè)整數(shù)值。
main()函數(shù)主體的結(jié)尾。
三維數(shù)組是數(shù)組的數(shù)組。三維數(shù)組中的每個(gè)元素由一組3個(gè)索引標(biāo)識。為了訪問3D數(shù)組的元素,我們使用了三個(gè)for循環(huán)。例如:
#includeusing namespace std;
void main()
{
int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};
cout << "a[0][1][0] = " << a[0][1][0] << "n";
cout << "a[0][1][1] = " << a[0][1][1] << "n";
}
輸出:
以下是代碼截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用main()函數(shù),其中應(yīng)添加程序邏輯。
main()函數(shù)主體的開始。
聲明一個(gè)名為大小為2x3x2的三維數(shù)組。數(shù)組的值也已初始化。
訪問存儲在數(shù)組索引[0][1][0]中的項(xiàng)并在控制臺上打印它。
訪問存儲在數(shù)組索引[0][1][1]中的項(xiàng)并在控制臺上打印它。
main()函數(shù)主體的結(jié)尾。
指針是保存地址的變量。除了使用指針來存儲變量的地址之外,我們還可以使用它來存儲數(shù)組單元格的地址。數(shù)組的名稱總是指向它的第一個(gè)元素??紤]以下聲明:
int age[5];
age是指向$age[0]的指針,它是名為age的數(shù)組的第一個(gè)元素的地址??紤]以下示例:
#includeusing namespace std;
int main()
{
int *john;
int age[5] = { 19, 18, 21, 20, 17 };
john = age;
cout << john << "n";
cout << *john;
}
輸出:
請注意,上述輸出的第一個(gè)值可能返回不同的值,具體取決于分配給計(jì)算機(jī)內(nèi)存中數(shù)組第一個(gè)元素的地址。
以下是代碼截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用main()函數(shù),其中應(yīng)添加程序邏輯。
main()函數(shù)主體的開始。
聲明名為*john的指針變量。
聲明一個(gè)名為age的整數(shù)數(shù)組來存儲5個(gè)整數(shù)。整數(shù)的值也已初始化。
為變量john賦值數(shù)組年齡的第一個(gè)索引中存儲的項(xiàng)的地址值。
打印變量john的值,它是存儲在數(shù)組的第一個(gè)索引中的項(xiàng)的地址。
打印存儲在數(shù)組中的第一個(gè)值。
main()函數(shù)主體的結(jié)尾。
數(shù)組名可以用作常量指針,反之亦然。這意味著您可以使用*(age+3)訪問存儲在數(shù)組age的索引3中的值。例如:
#includeusing namespace std;
int main() {
// an array of 5 elements.
int age[5] = { 19, 18, 21, 20, 17 };
int *p;
p = age;
// output array values
cout << "Using pointer: " << endl;
for (int x=0; x<5; x++) {
cout << "*(p + " << x << ") : ";
cout << *(p + x) << endl;
}
cout << "Using age as address: " << endl;
for (int x = 0; x < 5; x++) {
cout << "*(age + " << x << ") : ";
cout << *(age + x) << endl;
}
return 0;
}
輸出:
以下是代碼截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用main()函數(shù)并開始main()函數(shù)的主體。
評論。C++編譯器將跳過此。
聲明一個(gè)名為age的數(shù)組來存儲5個(gè)整數(shù)。
創(chuàng)建整數(shù)指針p。
為p賦值數(shù)組年齡的第一個(gè)元素的地址值。
注釋。C++編譯器將跳過此。
在控制臺上打印一些文本。
使用for a循環(huán)創(chuàng)建一個(gè)整數(shù)x。{標(biāo)記for循環(huán)主體的開始。
將x的值與控制臺上的其他文本一起打印出來。
在控制臺上打印*(p+x)的值。
循環(huán)體的結(jié)尾。
在控制臺上打印一些文本。
使用for循環(huán)創(chuàng)建變量x。{標(biāo)記for循環(huán)主體的開始。
將x的值從0到4與其他文本一起打印出來。
打印出*(年齡+x)的值。
for循環(huán)主體的結(jié)尾。
如果程序運(yùn)行成功,返回值。
main()函數(shù)主體的結(jié)尾。
數(shù)組的元素使用它們各自的索引進(jìn)行訪問。將要訪問的元素的索引添加到數(shù)組名稱后面的方括號[]中。例如:
int john = age[2];
在上面的示例中,我們只是簡單地聲明john的age存儲在名為age的數(shù)組的索引2中。這意味著john的age是數(shù)組age中的3rd值。這里是一個(gè)完整的C++示例,演示如何訪問和打印這個(gè)值:
#includeusing namespace std;
int main()
{
int age[5] = { 19, 18, 21, 20, 17 };
int john = age[2];
cout << "The age of John is:"<<john;
}
輸出:
以下是代碼截圖:
代碼說明:
在我們的代碼中包含iostream頭文件。它將允許我們讀取和寫入控制臺。
包括std名稱空間,以便在不調(diào)用它的情況下使用它的類和函數(shù)。
調(diào)用應(yīng)在其中添加代碼的main()函數(shù)。
main()函數(shù)主體的開始。
聲明一個(gè)名為age的數(shù)組以存儲5個(gè)整數(shù)元素。
訪問數(shù)組年齡的索引2中存儲的值,并將其值存儲在名為john的變量中。
在控制臺上與其他文本一起打印變量john的值。
數(shù)組元素按順序存儲。
數(shù)組元素使用各自的索引表示。第一個(gè)元素位于索引0處,而最后一個(gè)元素位于索引n-1處,其中是數(shù)組元素的總數(shù)。
數(shù)組的聲明包括定義數(shù)組元素的數(shù)據(jù)類型以及要存儲在數(shù)組中的元素?cái)?shù)。
一維數(shù)組按順序存儲元素。
二維數(shù)組在行和列中存儲元素。
三維數(shù)組是數(shù)組的數(shù)組。
可以使用元素的索引將元素添加到數(shù)組中。
數(shù)組元素使用其索引進(jìn)行訪問。
多維數(shù)組有多個(gè)維度。
數(shù)組名稱指向它的第一個(gè)元素。
數(shù)組的大小是固定的,這意味著在數(shù)組初始化后不能將新元素添加到數(shù)組中。
作者介紹