C++ 基础

C++ 主页 C++ 概述 C++ 环境设置 C++ 基本语法 C++ 注释 C++ Hello World C++ 省略命名空间 C++ 标记 C++ 常量/字面量 C++ 关键字 C++ 标识符 C++ 数据类型 C++ 数字数据类型 C++ 字符数据类型 C++ 布尔数据类型 C++ 变量类型 C++ 变量作用域 C++ 多变量 C++ 基本输入/输出 C++ 修饰符类型 C++ 存储类 C++ 数字 C++ 枚举 C++ 枚举类 C++ 引用 C++ 日期和时间

C++ 运算符

C++ 运算符 C++ 算术运算符 C++ 关系运算符 C++ 逻辑运算符 C++ 位运算符 C++ 赋值运算符 C++ sizeof 运算符 C++ 条件运算符 C++ 逗号运算符 C++ 成员运算符 C++ 强制类型转换运算符 C++ 指针运算符 C++ 运算符优先级 C++ 一元运算符

C++ 控制语句

C++ 决策语句 C++ if 语句 C++ if else 语句 C++ 嵌套 if 语句 C++ switch 语句 C++ 嵌套 switch语句 C++ 循环类型 C++ while 循环 C++ for 循环 C++ do while 循环 C++ Foreach 循环 C++ 嵌套循环 C++ break 语句 C++ continue 语句 C++ goto 语句

C++ 字符串

C++ 字符串 C++ 循环遍历字符串 C++ 字符串长度 C++ 字符串连接 C++ 字符串比较

C++ 函数

C++ 函数 C++ 多函数参数 C++ 递归函数 C++ 返回值 C++ 函数重载 C++ 函数重写 C++ 默认参数

C++ 数组

C++ 数组 C++ 多维数组 C++ 指向数组的指针 C++ 将数组传递给函数 C++ 从函数返回数组

C++ 结构 &联合

C++ 结构 C++ 联合

C++ 指针

C++ 指针 C++ 解引用 C++ 修改指针

C++ 类和对象

C++ 面向对象 C++ 类 &对象 C++ 类成员函数 C++ 类访问修饰符 C++ 静态类成员 C++ 静态数据成员 C++ 静态成员函数 C++ 内联函数 C++ this 指针 C++ 友元函数 C++ 指向类的指针

C++ 构造函数

C++ 构造函数 &析构函数 C++ 默认构造函数 C++ 参数化构造函数 C++ 复制构造函数 C++ 构造函数重载 C++ 带默认参数的构造函数 C++ 委托构造函数 C++ 构造函数初始化列表 C++ 使用构造函数动态初始化

C++ 继承

C++ 继承 C++ 多重继承 C++ 多级继承

C++ 面向对象

C++ 重载 C++ 多态性 C++ 抽象 C++ 封装 C++ 接口 C++ 虚函数 C++ 纯虚函数与抽象类

C++ 文件处理

C++ 文件和流 C++ 文件读取

C++ 进阶

C++ 异常处理 C++ 动态内存 C++ 命名空间 C++ 模板 C++ 预处理器 C++ 信号处理 C++ 多线程 C++ Web 编程 C++ 套接字编程 C++ 并发 C++ 高级概念 C++ Lambda 表达式 C++ unordered_multiset

C++ 实用资源

C++ 问答 C++ 快速指南 C++ 速查表 C++ STL 教程 C++ 标准库 C++ 实用资源 C++ 讨论


C++ 数组

C++ 数组存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型的变量的集合更为实用。

与其声明单个变量(例如 number0、number1、... 和 number99),不如声明一个数组变量(例如 numbers),并使用 numbers[0]、numbers[1] 和 ... numbers[99] 来表示单个变量。数组中的特定元素通过索引访问。

所有数组都由连续的内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。

声明数组

要在 C++ 中声明数组,程序员需要指定元素的类型以及数组所需的元素数量,如下所示:

type arrayName [ arraySize ];

这称为一维数组。arraySize 必须是大于零的整型常量,type 可以是任何有效的 C++ 数据类型。例如,要声明一个名为 balance 且类型为 double 的 10 个元素数组, 请使用以下语句 -

double balance[10];

初始化数组

您可以逐个初始化 C++ 数组元素,也可以使用单个语句初始化,如下所示 -

double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};

大括号 { } 之间的值的数量不能大于方括号 [ ] 之间声明的数组元素的数量。以下是对数组中单个元素赋值的示例 -

如果省略数组的大小,则会创建一个刚好够容纳初始化内容的数组。因此,如果您这样写 -

double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};

您将创建与上一个示例完全相同的数组。

balance[4] = 50.0;

上述语句将数组中第 5 个元素赋值为 50.0。具有第 4 个索引的数组将是第 5 个元素,即最后一个元素,因为所有数组的第一个元素的索引都是 0,也称为基索引。以下是我们上面讨论的相同数组的图形表示 -

Array Presentation

访问数组元素

通过索引数组名称来访问元素。方法是将元素的索引放在数组名称后的方括号中。例如 -

double salary = balance[9];

上述语句将从数组中取出第 10 个元素,并将其值赋给 salary 变量。下面是一个示例,它将使用上述三个概念:声明、赋值和访问数组 -

示例

在下面的示例中,我们声明一个数组,为该数组赋值,然后访问数组元素 -

#include <iostream>
using namespace std;
 
#include <iomanip>
using std::setw;
 
int main () {

   int n[ 10 ]; // n 是一个包含 10 个整数的数组

   // 将数组 n 的元素初始化为 0       
   for ( int i = 0; i < 10; i++ ) {
      n[ i ] = i + 100; // set element at location i to i + 100
   }
   cout << "Element" << setw( 13 ) << "Value" << endl;
 
   // 输出每个数组元素的值                    
   for ( int j = 0; j < 10; j++ ) {
      cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
   }
 
   return 0;
}

该程序使用setw()函数来格式化输出。当上述代码被编译并执行时,它会产生以下结果 -

输出

Element        Value
      0          100
      1          101
      2          102
      3          103
      4          104
      5          105
      6          106
      7          107
      8          108
      9          109

获取数组长度

要获取数组的长度,可以使用 sizeof() 运算符,即用数组的大小除以数组元素的大小。

请考虑以下语法 -

length = sizeof(arr) / sizeof(arr[0]);

示例

在下面的示例中,我们定义一个数组并计算其长度 -

#include <iostream>
using namespace std;

int main() {
  int arr[] = {10, 20, 30, 40, 50};
  int arr_length = sizeof(arr) / sizeof(arr[0]);

  cout << "Array's Length : " << arr_length;

  return 0;
}

输出

Array's Length : 5

更改数组元素

您可以通过指定数组元素的索引并赋值来更改其值。

示例

在下面的示例中,我们将更改索引 2 处的值 -

#include <iostream>
using namespace std;

int main() {
  int arr[] = {10, 20, 30, 40, 50};

  cout << "Before changing, element at index 2: " << arr[2] << endl;

  // 改变值
  arr[2] = 108;

  cout << "After changing, element at index 2: " << arr[2] << endl;

  return 0;
}

输出

Before changing, element at index 2: 30
After changing, element at index 2: 108

更多关于 C++ 数组的内容

数组对 C++ 至关重要,需要更多细节的介绍。以下是一些重要的概念,C++ 程序员应该清楚了解它们 -

序号 概念与描述
1 多维数组

C++ 支持多维数组。多维数组最简单的形式是二维数组。

2 指向数组的指针

只需指定数组名称(无需索引)即可生成指向数组首元素的指针。

3 将数组传递给函数

只需指定数组名称(无需索引)即可将指向数组的指针传递给函数。

4 从函数返回数组

C++ 允许函数返回数组。