如何在c语言二维数组中使用指针

2024-04-04 07:58:56 浏览

对于a[i][j](二维数组的大小为n×m)而言,首先要搞清楚行指针和列指针行指针:&a[i]或者a+i指向行,&a[i]=&*(a+i)=a+i列指针:a[i]或*(a+i)指向列,a[i]等价于*(a+i)元素的引用方式有如下三种方式1.通过地址引用二维元素*(&a[i][j]),*(a[i]+j),*(*(a+i)+j),*(a[0]+m*i+j)*(&a[0][0]+m*i+j)(*(a+i))[j]2.建立一个指针数组引用二维元素int *p[3],a[3][2],i,j;for(i=0;imain(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j;printf("输入学生号:0-2");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(j=0;jmain(){int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};int *p;for(p=a[0];p

main(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j; printf("输入学生号:0-2");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(j=0;jmain(){int score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};int i,j,*p; printf("输入学生号:");scanf("%d",&i);printf("the score of No.%d are:\n",i);for(p=score[i];p

如何在c二维数组中使用指针

数组指针(也称行指针)

()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是10,也可以说是p的步长。也就是说执行p+1时,p要跨过10个整型数据的长度。

例:int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。所以数组指针也称指向一维数组的指针,亦称行指针。

这样两者的区别就豁然开朗了,数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。