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

掌握 C++ 数组:声明、初始化、访问与实战操作全指南

C++ 数组完全指南

全面掌握 C++ 数组:声明、初始化、元素访问、遍历、用户输入、求和平均、越界风险与现代替代方案。

C++ 数组是固定大小、同类型元素的连续存储序列。例如 27 位学生成绩:

double grade[27];

grade 可存 27 个 double。声明后大小与元素类型不可变。


数组声明

dataType arrayName[arraySize];

示例:

int x[6];

访问数组元素

下标从 0 开始:

array[index];

以 int x[6] 为例:

掌握 C++ 数组:声明、初始化、访问与实战操作全指南

关键点


数组初始化

声明时初始化:

int x[6] = {19, 10, 8, 17, 9, 15};
掌握 C++ 数组:声明、初始化、访问与实战操作全指南

让编译器推导大小:

int x[] = {19, 10, 8, 17, 9, 15};

提供元素少于声明大小时,剩余元素零初始化:

int x[6] = {1, 2};  // x = {1, 2, 0, 0, 0, 0}
掌握 C++ 数组:声明、初始化、访问与实战操作全指南

元素修改与输入输出

int mark[5] = {19, 10, 8, 17, 9};
mark[3] = 9;              // 修改第 4 个元素
cin >> mark[2];           // 输入存入第 3 个
cin >> mark[i-1];         // 输入存入第 i 个
cout << mark[0];           // 输出首元素
cout << mark[i-1];         // 输出第 i 个

示例 1:遍历输出数组

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {7, 5, 6, 12, 35};
    cout << "The numbers are: ";

    // C++11 范围-based for(推荐只读遍历)
    for (const int& n : numbers) {
        cout << n << " ";
    }

    cout << "\nThe numbers are: ";
    // 传统索引 for
    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
注意:const int& n 避免拷贝且防止意外修改,比 int n 更高效。

示例 2:用户输入填充数组

#include <iostream>
using namespace std;

int main() {
    int numbers[5];
    cout << "Enter 5 numbers: " << endl;
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }
    cout << "The numbers are: ";
    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

示例 3:求和与平均值

#include <iostream>
using namespace std;

int main() {
    double numbers[] = {7, 5, 6, 12, 35, 27};
    double sum = 0;
    double count = 0;

    cout << "The numbers are: ";
    for (const double& n : numbers) {
        cout << n << " ";
        sum += n;
        ++count;
    }
    cout << "\nTheir Sum = " << sum << endl;
    double 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

范围循环简化了未知编译期大小数组的遍历。


数组越界访问:未定义行为

大小为 10 的数组,合法索引 0~9。访问 10 或更大触发未定义行为:可能崩溃、数据损坏、或看似正常实则埋雷。

现代 C++ 建议:优先使用 std::array(固定大小)或 std::vector(动态大小),提供 .at() 边界检查、迭代器安全、RAII 内存管理。

多维数组预览

二维数组 int matrix[3][4] 可视为 3 行 4 列表格。详见 C++ 多维数组专题。

C语言

  1. 掌握 C# 数组:声明、初始化与核心操作完全指南
  2. C# 多维数组:二维数组详解与代码示例
  3. 掌握 C# 锯齿数组:声明、初始化与访问完全指南
  4. 深入理解 C++ 类型转换:隐式、显式转型与现代 Cast 算符
  5. 掌握 C++ 运算符:六大类型全解析与实战示例
  6. C++ 注释最佳实践:编写可读、可维护代码的注释艺术
  7. 掌握 C++ break 语句:跳出循环与 switch 的核心控制流
  8. C++数组传递给函数实战指南
  9. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  10. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  11. MATLAB 多维数组与特殊数组完全指南
  12. Java 数组复制技术:全面指南