- 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++ 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++ 数组存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型变量的集合更有用。
与其声明单个变量,例如 number0、number1、... 和 number99,不如声明一个数组变量,例如 numbers,并使用 numbers[0]、numbers[1] 和 ...、numbers[99] 来表示单个变量。数组中的特定元素通过索引访问。
所有数组都由连续的内存位置组成。最低地址对应于第一个元素,最高地址对应于最后一个元素。
声明数组
要在 C++ 中声明数组,程序员需要指定元素的类型以及数组所需的元素数量,如下所示:
type arrayName [ arraySize ];
这称为一维数组。arraySize 必须是大于零的整数常量,type 可以是任何有效的C++ 数据类型。例如,要声明一个名为 balance 的 10 个元素的 double 类型数组,可以使用以下语句:
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,也称为基索引。以下是我们上面讨论的相同数组的图形表示:
访问数组元素
通过索引数组名称来访问元素。这是通过在数组名称后方方括号中放置元素的索引来完成的。例如:
double salary = balance[9];
以上语句将从数组中获取第 10 个元素并将值赋给 salary 变量。以下是一个示例,它将使用上面提到的所有三个概念,即声明、赋值和访问数组:
示例
在以下示例中,我们声明一个数组,为数组分配值,然后访问数组元素:
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main () { int n[ 10 ]; // n is an array of 10 integers // initialize elements of array n to 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; // output each array element's value 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; // changing the value 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++ 允许函数返回数组。 |