欢迎来到天天文库
浏览记录
ID:59019855
大小:496.50 KB
页数:31页
时间:2020-09-26
《第22讲 二维数组 字符串与指针 函数与指针 ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第22讲二维数组字符串与指针函数与指针a+i=a[i]=*(a+i)=&a[i][0],值相等,含义不同a+i表示第i行首地址,指向行a[i]*(a+i)&a[i][0],表示第i行第0列元素地址,指向列a[0]a[1]a[2]200020082016200020022008201020162018a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]aa+1a+2对二维数组inta[3][4],有a-----二维数组的首地址,即第0行的首地址a+i-----第i行的首地址a[
2、i]*(a+i)------第i行第0列的元素地址a[i]+j*(a+i)+j-----第i行第j列的元素地址*(a[i]+j)*(*(a+i)+j)a[i][j]10.5指针与二维数组1.二维数组和数组元素的地址inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]二维数组元素表示形式:(1)a[1][2](2)*(a[1]+2)(3)*(*(a+1)+2)(4)*(&a[0][0]+1*4+2)地址表示:(1)a+1(2)&a[1][0](3)a[
3、1](4)*(a+1)(5)(int*)(a+1)行指针列指针地址表示:(1)&a[1][2](2)a[1]+2(3)*(a+1)+2(4)&a[0][0]+1*4+2表示形式含义地址a二维数组名,数组首地址a[0],*(a+0),*a第0行第0列元素地址a+1第1行首地址a[1],*(a+1)第1行第0列元素地址a[1]+2,*(a+1)+2,&a[1][2]第1行第2列元素地址*(a[1]+2),*(*(a+1)+2),a[1][2]第1行第2列元素值2000200020082008201213main(){staticinta[3][4]={1,3,5,7,9,11,13,15,17,1
4、9,21,23};int*p;for(p=a[0];p5、a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]aa+1a+2pp+1p+2p[0]+1或*p+1p[1]+2或*(p+1)+2*(*p+1)或(*p)[1]*(*(p+1)+2)p指向的一维数组的元素个数和二维数组列数必须相同定义形式:数据类型(*指针名)[一维数组的元素个数];例int(*p)[4];2.通过建立指针数组和行指针引用二维数组指针数组:如inta[3][4],*q[4];q[0]=&a[0][0];q[1]=&a[2][0];可让p指向二维数组某一行如int6、a[3][4],(*p)[4];p=a;main(){staticinta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};inti,j,(*p)[4];for(p=a,i=0;i<3;i++,p++)for(j=0;j<4;j++)printf("%d",*(*p+j));printf("");}p=a[0];p=*a;p=&a[0][0];p=a;p=&a[0];inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]pp7、pp[0][j]例指向一维数组的指针变量(行指针)应用for(p=a,p
5、a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]aa+1a+2pp+1p+2p[0]+1或*p+1p[1]+2或*(p+1)+2*(*p+1)或(*p)[1]*(*(p+1)+2)p指向的一维数组的元素个数和二维数组列数必须相同定义形式:数据类型(*指针名)[一维数组的元素个数];例int(*p)[4];2.通过建立指针数组和行指针引用二维数组指针数组:如inta[3][4],*q[4];q[0]=&a[0][0];q[1]=&a[2][0];可让p指向二维数组某一行如int
6、a[3][4],(*p)[4];p=a;main(){staticinta[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};inti,j,(*p)[4];for(p=a,i=0;i<3;i++,p++)for(j=0;j<4;j++)printf("%d",*(*p+j));printf("");}p=a[0];p=*a;p=&a[0][0];p=a;p=&a[0];inta[3][4];a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][2]a[0][3]a[1][2]a[1][3]a[2][2]a[2][3]pp
7、pp[0][j]例指向一维数组的指针变量(行指针)应用for(p=a,p
此文档下载收益归作者所有