C++ 数组
C++ 支持 数组 数据结构,它可以存储一个固定大小的相同类型元素的顺序集合
数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量
数组的声明并不是声明一个个单独的变量,比如
number0、number1、...、number99
而是声明一个数组变量,比如 numbers,然后使用
numbers[0]、numbers[1]、...、numbers[99]
来代表一个个单独的变量
数组中的特定元素可以通过索引访问
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素
声明数组
C++ 中声明一个数组,需要指定元素的类型和元素的数量
type arrayName [ arraySize ];
- arraySize 必须是一个大于零的整数常量
- type 可以是任意有效的 C++ 数据类型
例如,要声明一个类型为 double 的包含 5 个元素的数组 grade ,声明语句如下:
double grade[5];
现在 grade 是一个可用的数组,可以容纳 5 个类型为 double 的数字
初始化数组
C++ 中可以逐个初始化数组
double grade[5]; grade[0] = 88.0; grade[1] = 59.5; grade[2] = 32.5; grade[3] = 99.0; grade[4] = 100.0;
也可以使用一个初始化语句
double grade[5] = {88.0, 59.5, 32.5, 99.0, 100.0};
大括号 {}
之间的值的数目不能大于我们在数组声明时在方括号 []
中指定的元素数目
如果省略掉了数组的大小,数组的大小则为初始化时元素的个数
double grade[] = {88.0, 59.5, 32.5, 99.0, 100.0};
将创建一个数组,它与前一个范例中所创建的数组是完全相同的
创建完数组后,我们还可以使用下标索引给数组添加值或者替换相应下标的值
grade[4] = 99.5;
这条语句把数组中第五个元素的值赋为 99.5
所有的数组都是以 0 作为它们第一个元素的索引,也被称为基索引
数组的最后一个索引是数组的总大小减去 1
下图列出了我们 grade
数组在内存中的一般存储形式
访问数组元素
数组元素可以通过数组名称加索引进行访问
元素的索引是放在方括号内,跟在数组名称的后边
double point = grade[3];
这条语句把数组中第 4 个元素的值赋给 point
变量
范例
我们写一个范例来演示下如何声明数组、数组赋值、访问数组
/** * file: main.cpp * author: 简单教程(www.twle.cn) * * Copyright © 2015-2065 www.twle.cn. All rights reserved. */ #include <iostream> #include <iomanip> using std::setw; const int LEN = 10; int main () { int arr[ LEN ]; // arr 是一个包含 10 个整数的数组 // 初始化数组元素 for ( int i = 0; i < LEN; i++ ) { arr[ i ] = i + 128; // 设置元素 i 为 i + 128 } std::cout << "Element" << std::setw( 13 ) << "Value" << std::endl; // 输出数组中每个元素的值 for ( int j = 0; j < 10; j++ ) { std::cout << setw( 7 )<< j << std::setw( 13 ) << arr[ j ] << std::endl; } return 0; }
setw() 函数用于格式化输出
编译和运行以上范例,输出结果如下
Element Value 0 128 1 129 2 130 3 131 4 132 5 133 6 134 7 135 8 136 9 137
C++ 中数组
数组作为 C++ 中最重要的数据结构,有着非常重要的作用,有很多使用场景
概念 | 描述 |
---|---|
多维数组 | C++ 支持多维数组。多维数组最简单的形式是二维数组 |
传递数组给函数 | 通过指定不带索引的数组名称来给函数传递一个数组 |
函数返回数组 | 函数返回数组 |