数组定义与初始化

float temperature [100] ;     // 100 个 float 值的数组
char letter [26] ;                  // 26 个 char 值的数组
double size [1200] ;           // 1200 个 double 值的数组
string name [10] ; // 10 个 string 对象的数组

数组声明元素的数量元素的大小数组的大小
char letter[26];261个字节26个字节
short ring[ 100];1002个字节200个字节
int mile[84];844个字节336个字节
float temp [12];124个字节48个字节
double distance[1000];10008个字节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)实现。

Scroll to Top