C++ 笔记(08)— 数组(数组的声明、初始化、访问及修改数组元素)
數組具有如下特點:
- 數組是一系列元素;
- 數組中所有元素的類型都相同;
- 所有的數組都是由連續的內存位置組成。最低的地址對應第一個元素,最高的地址對應最后一個元素。
1. 一維數組
1.1 聲明數組
要聲明一個數組,需要指定元素的類型和元素的數量,如下所示:
type arrayName[ arraySize ];
arraySize 必須是一個大于零的整數常量,type 可以是任意有效的 C++ 數據類型。例如,要聲明一個類型為 double 的包含 10 個元素的數組 balance,聲明語句如下:
double balance[10];
注意:前面聲明的所有數組都是靜態數組,因為它們的長度在編譯階段就已確定。這種數組不能存儲更多的數據;同時,即便有部分元素未被使用,它們占據的內存也不會減少。
長度在執行階段確定的數組被稱為動態數組。
1.2 初始化數組
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
大括號 { } 之間的值的數目不能大于我們在數組聲明時在方括號 [ ] 中指定的元素數目。
如果省略掉了數組的大小,數組的大小則為初始化時元素的個數。
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
int myNumbers [] = {2016, 2052, -525};
1.3 訪問數組元素
數組元素可以通過數組名稱加索引進行訪問。元素的索引是放在方括號內,跟在數組名稱的后邊。例如:
double salary = balance[9];
注意:訪問數組時,如果超越其邊界,結果將是無法預料的。在很多情況下,這將導致程序崩潰。應不惜一切代價避免訪問數組時超越其邊界。
1.4 修改數組元素
#include <iostream>
using namespace std;int main()
{ // n 是一個包含 10 個整數的數組int n[10];// 初始化數組元素for(int i=0; i<10; i++){n[i] = i + 100;}// 輸出數組中每個元素的值 for(int j=0; j<10; j++){cout << "j is " << j << ", 數組元素為:" << n[j] <<endl;}return 0;
}
2. 二維數組
一個二維數組,在本質上,是一個一維數組的列表。聲明一個 x 行 y 列的二維整型數組,形式如下:
typeName arrayName [x][y];
其中,typeName 可以是任意有效的 C++ 數據類型,arrayName 是一個有效的 C++ 標識符。
一個二維數組可以被認為是一個帶有 x 行和 y 列的表格。下面是一個二維數組,包含 3 行和 4 列:
2.1 初始化數組
多維數組可以通過在括號內為每行指定值來進行初始化。下面是一個帶有 3 行 4 列的數組。
int a[3][4] = { {0, 1, 2, 3} , /* 初始化索引號為 0 的行 */{4, 5, 6, 7} , /* 初始化索引號為 1 的行 */{8, 9, 10, 11} /* 初始化索引號為 2 的行 */
};
雖然 C++讓您能夠模擬多維數組,但存儲數組的內存是一維的。編譯器將多維數組映射到內存,而內存只沿一個方向延伸。
內部嵌套的括號是可選的,下面的初始化與上面是等同的:
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
2.2 訪問數組
二維數組中的元素是通過使用下標(即數組的行索引和列索引)來訪問的。例如:
int val = a[2][3];
上面的語句將獲取數組中第 3 行第 4 個元素。我們將使用嵌套循環來處理二維數組:
#include <iostream>
using namespace std;int main()
{ int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6}, {4,8}};for(int i=0; i<5; i++){for(int j=0; j<2; j++){cout << "a[" << i << "]" << "[" << j << "]" << " is:" << a[i][j] << endl;}}return 0;
}
總結
以上是生活随笔為你收集整理的C++ 笔记(08)— 数组(数组的声明、初始化、访问及修改数组元素)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房卡多少钱啊?
- 下一篇: 2022-2028年中国白手套行业市场全