欢迎来到天天文库
浏览记录
ID:48784024
大小:837.00 KB
页数:45页
时间:2020-01-24
《8章:指针2(老师主讲).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数组名作函数参数数组名作函数参数,是地址传递数组名作函数参数,实参与形参的对应关系实参形参数组名指针变量数组名指针变量数组名数组名指针变量指针变量例将数组a中的n个整数按相反顺序存放ij379110675420123456789ijijijji11760594723实参与形参均用数组voidinv(intx[],intn){intt,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);prin
2、tf("Thearrayhasbeenreverted:");for(i=0;i<10;i++)printf("%d,",a[i]);printf("");}m=4例将数组a中的n个整数按相反顺序存放voidinv(int*x,intn){intt,*p,*i,*j,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted:"
3、);for(i=0;i<10;i++)printf("%d,",a[i]);printf("");}实参用数组,形参用指针变量37911067542a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]xp=x+ma数组60711594723ijijijjiji例将数组a中的n个整数按相反顺序存放voidinv(int*x,intn){intt,*i,*j,*p,m=(n-1)/2;i=x;j=x+n-1;p=x+m;for(;i<=p;i++,j--){t=*i;*i=*j;*j=t;}}main(){inti,a[10],*p=a;fo
4、r(i=0;i<10;i++,p++)scanf("%d",p);p=a;inv(p,10);printf("Thearrayhasbeenreverted:");for(p=a;p5、nf("%d",p);p=a;inv(p,10);printf("Thearrayhasbeenreverted:");for(p=arr;p6、指针值的内存区(一般2字节);而给q分配2*10字节的内存区指针与二维数组二维数组的地址对于一维数组:(1)数组名array表示数组的首地址,即array[0]的地址;(2)数组名array是地址常量(3)array+i是元素array[i]的地址(4)array[i]*(array+i)arrayintarray[10];对于二维数组:(1)a是数组名,包含三个元素a[0],a[1],a[2](2)每个元素a[i]又是一个一维数组,包含4个元素aa+1a+2*(*(a+0)+1)*(a[0]+1)inta[3][4];a[0]a[1]a[2]20002008201627、00020022008201020162018a[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]基类型行指针与列指针a[0]+1a[1]+1a[2]+1*(a+0)+1*(a+1)+1*(a+2)+1inta[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[i][j
5、nf("%d",p);p=a;inv(p,10);printf("Thearrayhasbeenreverted:");for(p=arr;p6、指针值的内存区(一般2字节);而给q分配2*10字节的内存区指针与二维数组二维数组的地址对于一维数组:(1)数组名array表示数组的首地址,即array[0]的地址;(2)数组名array是地址常量(3)array+i是元素array[i]的地址(4)array[i]*(array+i)arrayintarray[10];对于二维数组:(1)a是数组名,包含三个元素a[0],a[1],a[2](2)每个元素a[i]又是一个一维数组,包含4个元素aa+1a+2*(*(a+0)+1)*(a[0]+1)inta[3][4];a[0]a[1]a[2]20002008201627、00020022008201020162018a[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]基类型行指针与列指针a[0]+1a[1]+1a[2]+1*(a+0)+1*(a+1)+1*(a+2)+1inta[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[i][j
6、指针值的内存区(一般2字节);而给q分配2*10字节的内存区指针与二维数组二维数组的地址对于一维数组:(1)数组名array表示数组的首地址,即array[0]的地址;(2)数组名array是地址常量(3)array+i是元素array[i]的地址(4)array[i]*(array+i)arrayintarray[10];对于二维数组:(1)a是数组名,包含三个元素a[0],a[1],a[2](2)每个元素a[i]又是一个一维数组,包含4个元素aa+1a+2*(*(a+0)+1)*(a[0]+1)inta[3][4];a[0]a[1]a[2]2000200820162
7、00020022008201020162018a[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]基类型行指针与列指针a[0]+1a[1]+1a[2]+1*(a+0)+1*(a+1)+1*(a+2)+1inta[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[i][j
此文档下载收益归作者所有