文档介绍:6
第六章
数组
基本数据类型(整型、字符型、浮点型、双精度型)
共同特点:单值变量、按名直接访问
构造类型(数组、结构、联合、枚举、类)
共同特点:
由多个分量组成的数据结构
每个分量都是一个变量(简单变量或嵌套的构造变量)
构造类型的数据,难以用变量名直接访问,必须增加与构造方法有关的附加信息,才能访问。
本章介绍数组的定义及数组元素的访问方法。
数组(Array)是用来处理具有关联的一批同种类型数据的一种数据结构。
特点
数组元素的数据类型相同
数组元素的个数确定
C++规定可用数组名和方括号中下标访问其中的某个元素。
即: 数组名[下标值]; 规定下标为 0 至 n-1
如: number [0] 表示第一个元素
number [49] 表示最后一个元素
§ 一维数组定义
格式:
类型说明符数组名[元素个数];
例如: int number[50];
定义一个包含有50个整数元素的整型数组。
根据定义,实际上number数组中每个数组元素都可看成是一个整型变量。可进行赋值、输入、输出等操作。
number [9]= 123;
cin >> number [0];
cout << number [9];
§ 一维数组的初始化
一般形式:
类型说明符数组名[元素个数]={数值表};
例如:定义一个数组,i数初始化:
int fib[10]={1,1,2,3,5,8,13,21,34,55};
例: 程序对数组进行初始化
#include <>
int array1[5]={1,2,3}; //全局数组
static int array2[5]={1}; //静态全局数组
void main( )
{
数组的作用域和初始化规则和单个变量相同。
函数内部定义为局部作用域的数组,未经显示初始化,其值不确定。
全局和静态作用域数组的初始值为缺省值0。
#include <>
int array1[5]={1,2,3};
//全局数组
static int array2[5]={1};
//静态全局数组
void main( )
{
int arr1[5]={2}; //局部数组
static int arr2[5]={1 ,2};
//静态局部数组
int n;
cout<< ” global:\n”;
for (n=0;n<5;n++)
cout<<””<<array1[n];
cout<< ”\n global static:\n”;
for(n=0;n<5;n++)
cout<< ””<<array2[n];
cout<< ”\n local:\n”;
for (n=0;n<5;n++)
cout<< ””<<arr1[n];
cout<<\n local static:\n”;
for(n=0;n<5;n++)
cout<< ””<<arr2[n];
cout<<endl;
}
例: 对数组进行初始化
结果:
global: local:
1 2 3 0 0 2 23567 23567 23567 23567
global static: local static:
1 0 0 0 0 1 2 0 0 0
字符数组的初始化
例如: char array[10]={“hello”};
省略为: char array[10]=“hello”;
系统对字符串数组自动加‘\0’结束符。
char array[10]={‘h’,’e’,’l’,’l’,’o’,’\0’};
数组定义省略大小时,可以按初始化数据个数确定数组大小。
static int a1[ ]={1,2,3,4,5};
static float a2[ ]={,,,};
例如:下面的程序调用一个函数求数组元素和。
#include <>
int sum(int[ ],int);
void main( )
{
static int arr[5]={2,4,6,8,10};
int sumofarray;
sumofarray=sum(arr,5); // 传数组名arr
cout <<“sum of array:”<<sumofarray<<endl;
}
int sum(int array[ ], int len)
{
int isum=0;
for(int i=0;I<len;i++)
isum +=array[i];
return isum;
}
§ 向函数传递数组
将数组作为实