文档介绍:该【c++数组 】是由【相惜】上传分享,文档一共【56】页,该文档可以免费在线阅读,需要了解更多关于【c++数组 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。数 组
1
编辑课件
本章要点
1、数组的定义格式
2、数组元素引用的格式
3、数组的赋值与初始化
4、数组与函数
5、字符数组
6、字符串
2
编辑课件
数组
数组是由一组具有相同数据类型的元素组成的集合。数组的类型就是这组元素的数据类型。构成数组的这组元素在内存中占用一组连续的存储单元。可以用一个统一的数组名标识这一组数据,而用下标来指明数组中各元素的序号。
3
编辑课件
一维数组的定义
语法格式:
类型 数组名[常量表达式];
如:
char a[5];
int b[10];
const int size=10;
int c[size];
注意:在定义数组时,不能用变量来描述数组定义中的元素个数。例如,下面的定义方式是不合法的:
int n;
cin>>n;
int b[n];
数组名是代表数组元素首地址的符号常量
例 对于 char a[10]
a的内容是一个地址,也就是a[0]的地址;在定义a[10]之后a为一个表示地址的常量。
4
编辑课件
一维数组的存储
用数组名加下标值就可以访问数组中对应的某个元素。下标值从0开始,因此对于一个具有n个元素的一维数组来说,它的下标值是0~ n-1。
数组元素在内存中是顺序存储的。对于一维数组,就是简单地按下标顺序存储。
如:int b[5];
b[0]
b[1]
b[2]
b[3]
b[4]
5
编辑课件
一维数组的初始化
语法格式为:
类型 数组名[ 数组范围 ]={值1,值2,…,值n};
例如:
char a[5]={’a’,’b’,’c’,’d’,’e’};
或:
char a[ ]={’a’,’b’,’c’,’d’,’e’};
int c[5]={1,2};
当数组长度与初始化元素的个数不相等时,数组长度不能省去不写,如上例不能写为:
int c[ ]={1,2};
字符数组初始化:
char d[6]={ ’h’ , ’e’ , ’l’ , ’l’ , ’o’ , ’\0’ };
char d[6]={”hello”}; 三种等价
char d[6]=”hello”;
6
编辑课件
数组元素的赋值
由于数组名是常量,数组元素是变量,所以对数组的赋值只能针对数组元素,并且必须逐一赋值。
例
int mydata[5];
mydata[0]=3; mydata[1]=78;
mydata[2]=54; mydata[3]=90;
mydata[4]=6;
mydata={3,78,54,90,6}
是错误的!
7
编辑课件
若要在数组之间进行赋值,也只能逐一地赋值。
for (i=0;i<3;i++) b[i]=a[i];
字符串数组:
cin>>数组名;
或
cin>>数组名[下标];
如:对一个大小为5的字符型数组a赋值,可以用下列两种方式:
char a[5];
cin>>a; //一般只针对字符数组
或 char a[5];
int i;
for (i=0;i<5,i++) cin>>a[i];
数组元素的赋值
8
编辑课件
数组元素的引用
引用形式为:
数组名[下标]
下标可以是整常数或整型表达式。例如a[2+1]、a[i+j]等〔i和j为整型变量〕。例如:
a[2]=10; //将10赋给数组中的a[2]元素。
a[5]=a[2]; //将a[2]元素的值赋给a[5]元素
cout<<a[5]; //打印a[5]元素的值
9
编辑课件
数组越界
在给数组元素赋值或对数组元素进行引用时,一定要注意下标的值不要超过数组的范围,否那么会产生数组越界问题。因为当数组下标越界时,编译器并不认为它是一个错误,但这往往会带来非常严重的后果。
例如:定义了一个整型数组a:
int a[10];
数组a的合法下标为0~9。如果程序要求给a[10]赋值,将可能导致程序出错,甚至系统崩溃。
可以使用下式预防越界:
sizeof〔a〕/sizeof〔int〕
10
编辑课件