5.1数组的概念
5.2一维数组的定义和引用5.4用数组名作函数参数5.5字符数组
5.6C++处理字符串的方法
⒈数组的概念
数组是具有一定顺序关系的若干相同类型变量的集合体,组成数组的变量称为该数组的元素。
数组属于构造类型。
⒉数组有两个特点:
1 数组元素的个数必须是确定的,但元素值是可变的;
2 一个数组的所有元素的类型必须是相同的。
⒊数组的分类:
按数组元素类型分:
数值数组:字符数组:指针数组:int a[8],b[4]={2,4,5,9}; char c[ ]=“Thank”;
* int d[3];
按维数来分:
一维数组:
二维数组:int m[2][2]={2,4,5,9};
int a[8],b[4]={2,4,5,9};
int n[2][2][2];
例:存储学生成绩用实型数组mark[100],
存储一行文字用字符数组str[200],
存储一个4*6的矩阵用二维整型数组a[4][6]。其中:①mark、str、a 是数组名。数组名是数组的首地址,是一个地址常量。
②[ ]称为下标运算符。
③下标运算符的个数称为数组的维数
④数组的成员称为数组元素:mark[0],mark[1]
⑤数组元素的类型称为该数组的基类型。
数组元素在内存里顺序存放一维数组的存放:
⒋数组元素在内存的存放形式
mark[0]mark[1]mark[2]mark[3]
...86.592.077.552.0
...
低地址
b[0][0]b[0][1]b[0][2]b[1][0]b[1][1]b[1][2]
123453000H 3002H 3004H
3006H 3008H 300A H
例如:整型数组b b[2][3]={ {1,2,3},
{4,5,6} };
多维数组的元素按行顺序存放。二维数组的存放:地址值数组元素
先存放第1 行的所有元素,再存放第2行的所有元素。
5.2.1定义一维数组:
元素个数
类型说明符数组名[常量表达式];
定义类型
int a[4];// 表明a数组由4个int型元素组成数组名称
5.2 一维数组的定义和引用
int a[4]; // 表明a数组由4个int型元素组成
其元素分别为:a[0], a[1], a[2], a[3]
其序号从0开始,若存放首地址为2000H,则在内存中为:
必须是常数
a[3]
a[2]
a[1]
a[0]2010H
200CH
2008H
2004H
2000H
C++不允许对数组的大小作动态的定义,即数组的大小不能是变量,必须是常量。
例:数组的定义中常见的错误:
①float a[0];/* 数组大小为0没有意义*/
②int b(2)(3);/* 不能使用圆括号*/
③int k,a[k];/* 不能用变量说明数组大小*/
④int n;
cin>>n;
int a[n];
说明:
(1) 数组名定名规则和变量名相同,遵循标识符定名规则。
(2) 用方括号括起来的常量表达式表示下标值,如下面的写法
是合法的:
int a[10];
int a[2*5];
int a[n*2]; //假设前面已定义了n为常变量
(3) 常量表达式的值表示元素的个数,即数组长度。
例如,在“int a[10];”中,10表示a数组有10个元素,下标从0开始,这10个元素是:a[0],a[1],a[2],a
[3],a[4],a[5],a[6],a[7], a[8],a[9]。
(4) 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。
如果要根据不同的数值改变数组的大小,可用常量表达式。如:
#define SIZE 50
void main(void)
{ int art[SIZE];
......
}
一维数组引用格式:
数组名[下标]
a[2]=10; //将10赋给数组中的a[2]元素。
a[5]=a[2]; //将a[2]元素的值赋给a[5]元素cout< 下标表示了元素在数组中的顺序号。只能为整型常量或整型表达式 5.2.2引用一维数组的元素 数组必须先定义,具体引用时(赋值、运算、输出)其元素等同于变量。a[0] a[1]a[2]a[3]a[4] a[5]a[6]a[7]a[8] a[9] void main(void ){ int i, a[10]; for ( i=0; i<10; i++) a[i]=i; for ( i=9; i>=0 ; i--)