1.一维数组与指针 例5:用指针访问数组元素。 85 程序执行后输出: a0=0al=1a2|=2a3=3a4=4a5|=5a|6=6a[7=7a8}=8a19=9 a0=0al=1a[2|=2a3=3a|4=4a5|=5a|6=6a[7=7a8}=8a19]=9 a0=0al=1a[2|=2a|3=3a4|=4a5]=5a|6]6a[7|=7a8=8a9}=9 a0=0a1l=1a2|=2a3]3a4]=4a5|=5a66a7]7a8|=8a9]=9 2021/224 26
2021/2/24 26 1. 一维数组与指针 例5:用指针访问数组元素。 85 程序执行后输出: a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5 a[6]=6 a[7]=7 a[8]=8 a[9]=9 a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5 a[6]=6 a[7]=7 a[8]=8 a[9]=9 a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5 a[6]=6 a[7]=7 a[8]=8 a[9]=9 a[0]=0 a[1]=1 a[2]=2 a[3]=3 a[4]=4 a[5]=5 a[6]=6 a[7]=7 a[8]=8 a[9]=9
注:(1)数组名等同于数组的第0个元素的地址,也 是整个数组的起始地址; (2)当 point指向数组a的第0个元素后, point+i 等同于a+i,即a的地址,或称为第个元素的指针 (3)当 point指向数组a的第0个元素后, point+i)、*(a+i)、a[、 point印、*&a均表 Ta; 2.多维数组与指针 以二维数组为例介绍多维数组的指针变量。 设有整型二维数组a34如下: 0123 4567 891011 2021/224
2021/2/24 27 注:(1)数组名等同于数组的第0个元素的地址,也 是整个数组的起始地址; (2)当point指向数组a的第0个元素后,point+i 等同于a+i,即a[i]的地址,或称为第i个元素的指针; (3)当point指向数组a的第0个元素后,* (point+i)、*(a+i)、a[i]、point[i]、 *&a[i]均表 示a[i]; 2. 多维数组与指针 以二维数组为例介绍多维数组的指针变量。 设有整型二维数组a[3][4]如下: 0 1 2 3 4 5 6 7 8 9 10 11
设数组a的首地址为1000,各下标变量的首地址 及其值如下图所示。 a[olo 0 1000 1 a[0 1004 a[0J12 1008 a[03 1012 1016 a[1l1 23456789 1020 a[1[21 1024 a[13 1028 al2|0 1032 a[2|1 1036 a[212 10 1040 a2|l3 11 1044 2021/224 28
2021/2/24 28 设数组a的首地址为1000,各下标变量的首地址 及其值如下图所示。 a[0][0] 0 1000 a[0][1] 1 1004 a[0][2] 2 1008 a[0][3] 3 1012 a[1][0] 4 1016 a[1][1] 5 1020 a[1][2] 6 1024 a[1][3] 7 1028 a[2][0] 8 1032 a[2][1] 9 1036 a[2][2] 10 1040 a[2][3] 11 1044
由于C+语言允许把一个二维数组分解为多个 维数组来处理,因此数组a可分解为三个一维数组: al[0,a[1,a[2] 每一个一维数组又含有四个元素。如: al[0:a00],ao[1],a[02,a[03 a[l:a[l0],a[l[1,a[12,a[13 a[2|:a[20],a[2l[1],a[2|2|,a[23 2021/224
2021/2/24 29 由于C++语言允许把一个二维数组分解为多个一 维数组来处理,因此数组a可分解为三个一维数组: a[0],a[1],a[2]。 每一个一维数组又含有四个元素。如: a[0]:a[0][0],a[0][1],a[0][2],a[0][3] a[1]:a[1][0],a[1][1],a[1][2],a[1][3] a[2]:a[2][0],a[2][1],a[2][2],a[2][3]
数组及数组元素的地址表示如下: a是二维数组名,也是二维数组0行的首地址, 等于1000。a0是第一个一维数组的数组名和首 地址,因此也为1000。*(a+0)或*a是与a0等效 的,它表示一维数组a0的0号元素的首地址, 也为1000。&a|00是二维数组0行0列元素首 地址,同样是1000。因此,a,a|0,*(a+0),*a, &a|00是相等的。 2021/224 30
2021/2/24 30 数组及数组元素的地址表示如下: a是二维数组名,也是二维数组0行的首地址, 等于1000。a[0]是第一个一维数组的数组名和首 地址,因此也为1000。 *(a+0)或*a是与a[0]等效 的, 它表示一维数组a[0]的0 号元素的首地址, 也为1000。&a[0][0]是二维数组a的0行0列元素首 地址,同样是1000。因此,a,a[0], *(a+0), *a, &a[0][0]是相等的