注意: 1:数组是一种组合类型,是不能作为一个整体进 行访问和处理的,只能按元素进行个别的访问和处理。 2:C++数组第一个元素的下标为0,而不是1, 且下标表达方式是固定的。 3:数组元素在内存中是从低地址开始顺序排列, 各元素的存储单元占用内存大小相同,各元素的存储 单元之间没有空隙,可以从数组第一个元素存储单元 的起始地址计算出任意一个元素存储单元的起始地址
注意: 1: 数组是一种组合类型,是不能作为一个整体进 行访问和处理的,只能按元素进行个别的访问和处理。 2: C++数组第一个元素的下标为0,而不是1, 且下标表达方式是固定的。 3:数组元素在内存中是从低地址开始顺序排列, 各元素的存储单元占用内存大小相同,各元素的存储 单元之间没有空隙,可以从数组第一个元素存储单元 的起始地址计算出任意一个元素存储单元的起始地址
614一雍数組例子 找出一个整型数组各数组元素中的最大数和最小数,数组中的数由随机数 函数 rando产生。这是很典型的基本算法,细讲。 const SIZE=157 void maino d int arr[SIZE]: int i, high,low; for(i=0; i<sIzE; i++) arr[]=rando%o100; for(i=0; i<sIZE; i++) cout< <arr[i]<<ti cout<<end high=arro];/最大和最小值均为数组的第0个元素 low=arr[o]; for(i=1;i<sIzE; i++)t if(arr[i]>highhigh=arr[i]; if(arr[i]<low low=arr[i]i cout << highest value is"<<high<<endl; cout<< lowest value is "<<low<<end: returni
6.1.4 一维数组例子 找出一个整型数组各数组元素中的最大数和最小数,数组中的数由随机数 函数 rand()产生。这是很典型的基本算法,细讲。 const SIZE=15; void main() { int arr[SIZE]; int i,high,low; for(i=0; i<SIZE; i++) arr[i]=rand()%100; for(i=0; i<SIZE; i++) cout<<arr[i]<<'\t'; cout<<endl; high=arr[0]; //最大和最小值均为数组的第0个元素 low=arr[0]; for(i=1; i<SIZE; i++) { if(arr[i]>high) high=arr[i]; if(arr[i]<low) low=arr[i]; } cout<<"highest value is "<<high<<endl; cout<<"lowest value is "<<low<<endl; return; }
62二维数组 二维数组的定义: 二维数组也称为矩阵,需要两个下标才能标识某个元素 的位置,通常称第一个下标为行下标,称第二个下标为列下标。 定义二维数组的语法格式为: 类型数组名[常量表达式1[常量表达式2]; 定义二维数组的格式与定义一维数组的格式相同,只是 必须指定两个常量表达式,第一个常量表达式标识数组的行数, 第二个常量表达式标识数组的列数。 例如:inta[2][3]; 上面定义了一个二维数组a,它在逻辑上的空间形式为2 行3列,也可以这么说,定义了两个一维数组a[0]和a[1],而 a[0]和a[1]每个又是一个有3个元素的一维数组。每一个数组 元素都是整型数据,因此a数组的各元素如下 心
6.2 二维数组 二维数组的定义: 二维数组也称为矩阵,需要两个下标才能标识某个元素 的位置,通常称第一个下标为行下标,称第二个下标为列下标。 定义二维数组的语法格式为: 类型 数组名[常量表达式1][常量表达式2]; 定义二维数组的格式与定义一维数组的格式相同,只是 必须指定两个常量表达式,第一个常量表达式标识数组的行数, 第二个常量表达式标识数组的列数。 例如: int a[2][3]; 上面定义了一个二维数组a,它在逻辑上的空间形式为2 行3列,也可以这么说,定义了两个一维数组a[0]和a[1],而 a[0]和a[1]每个又是一个有3个元素的一维数组。每一个数组 元素都是整型数据,因此a数组的各元素如下:
62二维飘组 a[o]( aloof a[oIl] a[o]2] a[1](a1[oa1]a[1[2] ∥每一维的下标都是从0开始 可见,二维数组中每个元素都是用下列方式标识: 数组名[行下标]列下标] 二维数组在内存中的排列顺序是“先行后列”, 即在内存中先存第一行的元素,然后再存第二行的元 素。从数组下标变化来看,先变第二个下标,第一个 下标先不变化(即a[oo,a[0J1,a[o[2]),待第 个下标变到最大值时,才改变第一个下标,第二个 下标又从0开始变化。比如上面定义的2行3列的二维 数组a,在内存中的存放顺序上图所示 心
a[0] a[0][0] a[0][1] a[0][2] a[1] a[1][0] a[1][1] a[1][2] // 每一维的下标都是从0开始 可见,二维数组中每个元素都是用下列方式标识: 数组名[行下标][列下标] 二维数组在内存中的排列顺序是“先行后列” , 即在内存中先存第一行的元素,然后再存第二行的元 素。从数组下标变化来看,先变第二个下标,第一个 下标先不变化(即a[0][0],a[0][1],a[0][2]),待第 二个下标变到最大值时,才改变第一个下标,第二个 下标又从0开始变化。比如上面定义的2行3列的二维 数组a,在内存中的存放顺序上图所示。 6.2 二维数组
62二维數组 由于二维数组在内存中是线性排列的,引用一维 数组和引用二维数组都是引用相应存储地址的内容, 因此可以计算出一个二维数组元素在对应一维数组中 的顺序号,从而将对二维数组元素的引用转变为对 维数组元素的引用,这个过程称为“降维处理”(经 常在向函数传递数组时用到) 举例来说,假设有一个mⅹn的二维数组a,其中第 衔第列元素a在数组中的位置公式为: *n+ 心
6.2 二维数组 由于二维数组在内存中是线性排列的,引用一维 数组和引用二维数组都是引用相应存储地址的内容, 因此可以计算出一个二维数组元素在对应一维数组中 的顺序号,从而将对二维数组元素的引用转变为对一 维数组元素的引用,这个过程称为“降维处理”(经 常在向函数传递数组时用到)。 举例来说,假设有一个m x n的二维数组a,其中第 i行第j列元素a[i][j]在数组中的位置公式为: i*n+j