蓉杠学习网

c语言 指针数组 数组指针,c语言指针数组数组指针

大家好,今天小编关注到一个比较意思的话题,就是关于c语言 指针数组 数组指针的问题,于是小编就整理了2个相关介绍c语言 指针数组 数组指针的解答,让我们一起看看吧。

  1. 如何在c语言二维数组中使用指针?
  2. C语言中,怎么用指针访问数组元素,要注意哪些问题?

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

对于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语言中怎么用指针访问数组元素,要注意哪些问题?

1 对初学者而言,你的指针类型必须和数组类型一致,必须一致、必须一致……必须一致,或许你看到有牛人用字符型指针访问长整数啥的,一定记住那是魔鬼……那是魔鬼!

c语言 指针数组 数组指针,c语言指针数组数组指针div>
图片来源网络,侵删)

2 你要记住数组名称实际也是指针,但这个指针的地址不能增减,数组名变量始终记着这个数存储的开始地址。

但指针变量的地址可以增减,你心中必须非常清楚你的指针变量指的是数组中的第几个数,如果要用指针来回访问数组,记着访问到数组尾巴上以后,下一次一定要让指针再次指向数组头上,就是要:

p=Array;

c语言 指针数组 数组指针,c语言指针数组数组指针
(图片来源网络,侵删)

p=&Array[0];

之类的语句初始化

3 记住你访问的数组中到底有几个数,例如一个数组中有10个数,指针或许能访问到第11个甚至更多个数,但那些真的不是你要的;

c语言 指针数组 数组指针,c语言指针数组数组指针
(图片来源网络,侵删)

4 访问多维数组,例如是三维,一定记住面指针、行首指针、列指针等等,一定要清楚这些东西在内存中怎么存储的。

总之,脑子没记性的人最好下标法访问数组,一定别听那些关于“指针访问数组更快”的神话,那点更快的速度不值得记忆力一般的人冒险。

到此,以上就是小编对于c语言 指针数组 数组指针的问题就介绍到这了,希望介绍关于c语言 指针数组 数组指针的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.rongung.com/post/33214.html

分享:
扫描分享到社交APP