首页  /  编程问答  /  什么是数组指针  /  

什么是数组指针

答:就是一个指针,只不过这个指针指向一个数组



什么?还能指向一个数组??没错,你没有看错,的确可以用一个指针指向一个数组,或者,我们也可以叫它为行指针


比如我们,定义一个数组指针,如下:

int (*p)[10];

大家注意看它的写法,因为小括号优先级高的原因,所以p本身是指针的属性,指向的是一个有10个整型元素的一个数组,即所谓的行指针。那么它怎么用,如何用呢,下面给大家代码理解:

#include<stdio.h>
int main()
{
    int (*p)[10];
    int a[10]={1,2,3,4,5,6,7,8,9,0};
    p=&a;
    printf("%d\n",*(*(p+0)+1));
    printf("%d\n",p[0][3]);
    return 0;
}

大家可以看到我首先定义了一个行指针p,然后定义了一个一维数组a,然后将p指向了a数组,这就是行指针指向了一行数组,类型都是整型,都是有10个元素,因此类型一致。那么注意后面的两个printf,都是通过p来输出数组a当中的两个元素,大家可以看到,都是用到了二维的数组的形式输出,为什么可以呢?原因就在于p是行指针,每次加1也就意味着加一行,因此如果用p来输出a元素的值,需要两个"降级"才可以,就会有这样的写法,请大家上机试验,反复理解



本文固定URL:https://www.dotcpp.com/qa/12

编程杂谈
编程基础
知识答疑