float temperature [100] ; // 100 个 float 值的数组
char letter [26] ; // 26 个 char 值的数组
double size [1200] ; // 1200 个 double 值的数组
string name [10] ; // 10 个 string 对象的数组
数组声明 | 元素的数量 | 元素的大小 | 数组的大小 |
char letter[26]; | 26 | 1个字节 | 26个字节 |
short ring[ 100]; | 100 | 2个字节 | 200个字节 |
int mile[84]; | 84 | 4个字节 | 336个字节 |
float temp [12]; | 12 | 4个字节 | 48个字节 |
double distance[1000]; | 1000 | 8个字节 | 8000个字节 |
数组初始化
int a[5]={1,2,3,4,5}; 这个数组的名字叫a,可以容纳5个数组,直接赋值为1,2,3,4,5;
int value[10]; 这个数组名字叫value,可以容纳10个int类型的元素;
int var[10]={1,2}; 这个数组名字叫var,可以容纳10个int类型的元素,第一个和第二个元素的值分别是1,2;
double a[] = {2.0, 3.4, 7.0, 50.0}; 如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。int a[5]={0};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <iostream> using namespace std; int main(){ // Initialize variable d // 初始化变量 d int d = 1; // Initialize array 'a' with 9 elements (10th element is zero-initialized) // 使用9个元素初始化数组 'a'(第10个元素被初始化为0) int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // Initialize array 'b' with first three elements, others are zero-initialized // 使用前三个元素初始化数组 'b',其他元素被初始化为0 int b[10] = {1, 2, 5}; // Declare array 'c' with 10 elements (uninitialized) // 声明一个包含10个元素的数组 'c'(未初始化) int c[10]; // Set the 5th element of array 'c' to 1 // 将数组 'c' 的第5个元素设置为1 c[4] = 1; // Output the 5th element of array 'a' // 输出数组 'a' 的第5个元素 cout << a[4] << '\n'; // Increment 'd' and then access the 'd+1'th element of array 'b' // 增加 'd' 的值,然后访问数组 'b' 的第 'd+1' 个元素 cout << b[++d] << '\n'; // Access the 'd'th element of array 'b', then increment 'd' // 访问数组 'b' 的第 'd' 个元素,然后增加 'd' 的值 cout << b[d++] << '\n'; // Access the 'd'th element of array 'c' (uninitialized), then increment 'd' // 访问数组 'c' 的第 'd' 个元素(未初始化),然后增加 'd' 的值 cout << c[d++] << '\n'; // Output the current value of 'd' // 输出 'd' 的当前值 cout << d; return 0; } |
变长数组(VLA)
int main(){ int n; cin>>n; int a[n]; //... code block }
在 C++ 中,标准数组的大小需要在编译时确定,因此通常不能使用变量来定义数组的大小。你的代码示例中使用了变量 n
来定义数组 a的大小,这是变长数组(VLA)的特性,它并非 C++ 标准的一部分。
然而,一些编译器(如 GCC)作为扩展支持变长数组,所以在这些编译器上你的代码可能可以工作。但是,这种做法并不是可移植的,因为它依赖于特定编译器的特性。
为了编写可移植的、符合C++标准的可变数组,应该使用标准库中的容器(vector)实现。