一、基本概念
C++數組是一種線性數據結構,它由一系列相同類型的元素組成。每個元素都可以通過下標來訪問,下標從0開始,最大下標為數組長度減一。
二、聲明數組
在C++中聲明數組需要指定元素類型和數組大小,語法如下:
type arrayName[arraySize];
其中,type
表示元素類型,arrayName
表示數組名稱,arraySize
表示數組大小。
例如,聲明一個大小為5、元素類型為int
的數組:
int myArray[5];
三、初始化數組
1. 使用大括號初始化
使用大括號可以為數組元素提供初始值。以下是一些示例:
// 聲明一個大小為3的字符串數組,並賦初值
string strArray[3] = {"Hello", "world", "!"};
// 聲明一個大小為4的整型數組,並賦初值
int intArray[4] = {1, 2, 3, 4};
// 聲明一個大小為10的浮點型數組,並賦初值
float floatArray[10] = {1.1, 2.2, 3.3, 4.4};
2. 不使用大括號初始化
如果沒有為數組提供初始值,那麼數組中的元素將會被默認初始化。以下是一些示例:
// 聲明一個大小為5的整型數組,並默認初始化為0
int intArray[5] = {};
// 聲明一個大小為3的字符型數組,並默認初始化為空字符
char charArray[3];
// 聲明一個大小為4的布爾型數組,並默認初始化為false
bool boolArray[4];
3. 動態初始化
在C++中,可以在運行時動態地初始化數組,需要使用new
來申請內存。以下是一些示例:
// 動態申請一個大小為10的整型數組,並賦初值
int *intArray = new int[10]{1,2,3,4,5,6,7,8,9,10};
// 動態申請一個大小為5的浮點型數組,並默認初始化為0
float *floatArray = new float[5]();
四、補充說明
在C++中,如果數組初始化的元素個數少於數組大小,那麼剩餘的元素將會被默認初始化。例如:
int intArray[5] = {1, 2};
這裡只初始化了前兩個元素,那麼後三個元素將會被默認初始化為0。
如果數組初始化的元素個數多於數組大小,那麼編譯器將會拋出編譯錯誤。
另外,C++11添加了initializer_list
初始化列表特性,可以用來方便地初始化數組和其他容器類型的對象,具體用法可以參考相關文檔。
完整示例代碼
// 大括號初始化的示例
#include <iostream>
#include <string>
using namespace std;
int main() {
// 聲明一個大小為3的字符串數組,並賦初值
string strArray[3] = {"Hello", "world", "!"};
for(int i = 0; i < 3; ++i) {
cout << strArray[i] << " ";
}
cout << endl;
// 聲明一個大小為4的整型數組,並賦初值
int intArray[4] = {1, 2, 3, 4};
for(int i = 0; i < 4; ++i) {
cout << intArray[i] << " ";
}
cout << endl;
// 聲明一個大小為10的浮點型數組,並賦初值
float floatArray[10] = {1.1, 2.2, 3.3, 4.4};
for(int i = 0; i < 10; ++i) {
cout << floatArray[i] << " ";
}
cout << endl;
return 0;
}
// 不使用大括號初始化的示例
#include <iostream>
using namespace std;
int main() {
// 聲明一個大小為5的整型數組,並默認初始化為0
int intArray[5] = {};
for(int i = 0; i < 5; ++i) {
cout << intArray[i] << " ";
}
cout << endl;
// 聲明一個大小為3的字符型數組,並默認初始化為空字符
char charArray[3];
for(int i = 0; i < 3; ++i) {
cout << charArray[i] << " ";
}
cout << endl;
// 聲明一個大小為4的布爾型數組,並默認初始化為false
bool boolArray[4];
for(int i = 0; i < 4; ++i) {
cout << boolArray[i] << " ";
}
cout << endl;
return 0;
}
// 動態初始化的示例
#include <iostream>
using namespace std;
int main() {
// 動態申請一個大小為10的整型數組,並賦初值
int *intArray = new int[10]{1,2,3,4,5,6,7,8,9,10};
for(int i = 0; i < 10; ++i) {
cout << intArray[i] << " ";
}
cout << endl;
delete[] intArray;
// 動態申請一個大小為5的浮點型數組,並默認初始化為0
float *floatArray = new float[5]();
for(int i = 0; i < 5; ++i) {
cout << floatArray[i] << " ";
}
cout << endl;
delete[] floatArray;
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/152732.html