亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 数组

C++ 数组

在本教程中,我们将学习使用数组。我们将借助示例学习在 C++ 编程中声明、初始化和访问数组元素。

在 C++ 中,数组是一个变量,可以存储多个相同类型的值。例如,

假设一个班级有 27 名学生,我们需要存储所有学生的成绩。我们可以简单地创建一个数组,而不是创建 27 个单独的变量:

double grade[27];

在这里,等级 是一个数组,最多可以容纳 double 的 27 个元素 输入。

在 C++ 中,数组的大小和类型在声明后不能更改。


C++ 数组声明

dataType arrayName[arraySize];

例如,

int x[6];

在这里,


访问 C++ 数组中的元素

在 C++ 中,数组中的每个元素都与一个数字相关联。该数字称为数组索引。我们可以通过使用这些索引来访问数组的元素。

// syntax to access array elements
array[index];

考虑数组 x 我们已经在上面看到了。

<图>

要记住的几件事:


C++ 数组初始化

在 C++ 中,可以在声明期间初始化数组。例如,

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
<图>

声明时初始化数组的另一种方法:

// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};

在这里,我们没有提到数组的大小。在这种情况下,编译器会自动计算大小。


具有空成员的 C++ 数组

在 C++ 中,如果数组的大小为 n ,我们最多可以存储 n 数组中的元素数。但是,如果我们存储小于 n 会发生什么 元素的数量。

例如,

// store only 3 elements in the array
int x[6] = {19, 10, 8};

这里,数组 x 大小为 6 .但是,我们只用 3 个元素对其进行了初始化。

在这种情况下,编译器将随机值分配给剩余的位置。通常,这个随机值只是 0 .

<图>

如何插入和打印数组元素?

int mark[5] = {19, 10, 8, 17, 9}

// change 4th element to 9
mark[3] = 9;

// take input from the user
// store the value at third position
cin >> mark[2];


// take input from the user
// insert at ith position
cin >> mark[i-1];

// print first element of the array
cout << mark[0];

// print ith element of the array
cout >> mark[i-1];

示例1:显示数组元素

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {7, 5, 6, 12, 35};

    cout << "The numbers are: ";

    //  Printing array elements
    // using range based for loop
    for (const int &n : numbers) {
        cout << n << "  ";
    }


    cout << "\nThe numbers are: ";

    //  Printing array elements
    // using traditional for loop
    for (int i = 0; i < 5; ++i) {
        cout << numbers[i] << "  ";
    }

    return 0;
}

输出

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

在这里,我们使用了 for 循环从 i = 0 开始迭代 到 i = 4 .在每次迭代中,我们打印了 numbers[i] .

我们再次使用基于范围的 for 循环来打印出数组的元素。要了解有关此循环的更多信息,请查看 C++ Ranged for Loop。

注意: 在基于范围的循环中,我们使用了代码 const int &n 而不是 int n 作为范围声明。但是,const int &n 更受欢迎,因为:

  1. 使用 int n 只需将数组元素复制到变量 n 在每次迭代期间。这不是内存效率的。

    &n 但是,它使用数组元素的内存地址来访问它们的数据,而无需将它们复制到新变量中。这样可以节省内存。
  2. 我们只是打印数组元素,而不是修改它们。因此,我们使用 const 以免意外改变数组的值。

示例 2:从用户获取输入并将其存储在数组中

#include <iostream>
using namespace std;

int main() {
    int numbers[5];

    cout << "Enter 5 numbers: " << endl;

    //  store input from user to array
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }

    cout << "The numbers are: ";

    //  print array elements
    for (int n = 0; n < 5; ++n) {
        cout << numbers[n] << "  ";
    }

    return 0;
}

输出

Enter 5 numbers: 
11
12
13
14
15
The numbers are: 11  12  13  14  15

再一次,我们使用了 for 循环从 i = 0 迭代 到 i = 4 .在每次迭代中,我们从用户那里获取一个输入并将其存储在 numbers[i] .

然后,我们使用了另一个 for 循环打印所有数组元素。


示例 3:使用 for 循环显示数组元素的总和和平均值

#include <iostream>
using namespace std;

int main() {
    
    // initialize an array without specifying size
    double numbers[] = {7, 5, 6, 12, 35, 27};

    double sum = 0;
    double count = 0;
    double average;

    cout << "The numbers are: ";

    //  print array elements
    // use of range-based for loop
    for (const double &n : numbers) {
        cout << n << "  ";

        //  calculate the sum
        sum += n;

        // count the no. of array elements
        ++count;
    }

    // print the sum
    cout << "\nTheir Sum = " << sum << endl;

    // find the average
    average = sum / count;
    cout << "Their Average = " << average << endl;

    return 0;
}

输出

The numbers are: 7  5  6  12  35  27
Their Sum = 92
Their Average = 15.3333

在这个程序中:

  1. 我们已经初始化了一个 double 名为 numbers 的数组 但没有指定它的大小。我们还声明了三个双变量sum , 计数 , 和 平均 .

    这里,sum =0count = 0 .
  2. 然后我们使用基于范围的 for 循环打印数组元素。在循环的每次迭代中,我们将当前数组元素添加到 sum .
  3. 我们也增加了 count 的值 通过 1 在每次迭代中,这样我们就可以在 for 循环结束时得到数组的大小。
  4. 打印完所有元素后,我们打印所有数字的总和和平均值。数字的平均值由 average = sum / count; 给出

注意: 我们使用了远程 for 循环而不是普通的 for 循环。

一个普通的 for 循环需要我们指定迭代次数,由数组的大小给出。

但是一个远程for 循环不需要这样的规范。


​​C++ 数组越界

如果我们声明一个大小为 10 的数组,那么该数组将包含从索引 0 到 9 的元素。

但是,如果我们尝试访问索引为 10 或大于 10 的元素,则会导致 Undefined Behaviour。


C语言

  1. C# 数组
  2. C# 多维数组
  3. C# 锯齿状数组
  4. C++ 类型转换
  5. C++ 运算符
  6. C++ 注释
  7. C++ 中断语句
  8. 在 C++ 编程中将数组传递给函数
  9. Java 复制数组
  10. C++ 中的数组 |声明 |初始化 |指向数组示例的指针
  11. C++ 动态分配数组的例子
  12. MATLAB - 数组