C++一维数组的声明和初始化(附带实例)
C++ 程序设计中,将一组数据类型相同的数据按一定形式有序地组织起来,这样的线性序列称为数组。每个数组都有一个数组名,通过数组名和下标可以唯一地确定一个数组元素。
例如:
例如,下面的定义形式是不合法的:
引用一维数组元素时,需要注意:数组元素的下标起始值是 0,而不是 1。因此,一个包含 n 个元素的数组,其数组下标最大值是 n-1,而不是 n。
例如:
例如:
【实例】使用数组保存用户输入的手机号。代码如下:
C++一维数组的声明
一维数组的声明形式如下:数据类型 数组名[常量表达式]
- “数据类型”用于指定为数组中元素的数据类型;
- “数组名”用于指定数组的名称;
- “常量表达式”定义了数组中存放的数据元素个数,即数组长度。
例如:
int a[10]; // 声明一个整型数组,包含 10 个元素 char name[128]; // 声明一个字符型数组,包含 128 个元素 float price[20]; // 声明一个浮点型数组,包含 20 个元素使用一维数组的说明如下:
- 数组名的命名必须符合标识符命名规则;
- 数组名后面的括号是方括号,方括号内是常量表达式;
- 常量表达式表示元素个数,即数组长度。数组大小不能动态地定义,因此这里不能是变量。
例如,下面的定义形式是不合法的:
int a[i]; // 不合法的定义,数组长度不能是变量
C++一维数组元素的引用
一维数组元素的引用形式为“数组名[下标]”。例如,有如下数组声明:int a[10]; // 声明一个整形数组,包含 10 个元素则 a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9] 是对数组 a 中 10 个元素的引用。
引用一维数组元素时,需要注意:数组元素的下标起始值是 0,而不是 1。因此,一个包含 n 个元素的数组,其数组下标最大值是 n-1,而不是 n。
注意,上述定义的数组 a 中,a[10] 元素是不存在的,引用 a[10] 属于下标越界,容易造成程序瘫痪。
C++一维数组的初始化
数组元素初始化的方式有两种:一种是逐一对各元素进行赋值,另一种是使用聚合方式赋值。1) 逐一对数组元素赋值
最常见的数组赋值方式就是引用数组元素并逐一赋值。例如:
#include <iostream> using namespace std; int main() { char a[3]; // 定义字符数组 a a[0] = 'a'; // 为第 1 个元素赋值 'a' a[1] = 'b'; // 为第 2 个元素赋值 'b' a[2] = 'c'; // 为第 3 个元素赋值 'c' int i = 0; cout << a[i] << endl; // 输出第 1 个数组元素 }程序运行结果如下图所示:
a
2) 聚合方式赋值
除了可逐一对数组元素赋值外,还可以通过大括号同时对多个数组元素赋值:- 如果只给部分数组元素赋值,则未被赋值的元素默认为被赋值 0;
- 当对所有数组元素都赋初值时,可以不指定数组长度。
例如:
int a[12] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // 为数组 a 的 12 个元素赋值 int b[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; // 未指定数组 b 长度,默认全部赋值,数组共 12 个元素 int c[12] = {1, 2, 3, 4, 5, 6, 7}; // 数组 c 的前 7 个元素被赋值,后 5 个元素未被赋值,默认被赋值 0
【实例】使用数组保存用户输入的手机号。代码如下:
#include <iostream> using namespace std; int main() { int iArray[11], index; // 定义数组及变量为基本整型 printf("请输入手机号:\n"); for (index = 0; index < 11; index++) // for 循环,逐个输入数组元素,用空格隔开 { cin >> iArray[index]; } printf("手机号是:\n"); for (index = 0; index < 11; index++) // for 循环,依次输出数组元素 { cout << iArray[index]; } printf("\n"); return 0; }程序运行结果如下图所示:
1 2 3 4 5 6 7 8 9 1 2
手机号是:
12345678912