C语言指针 急急急!! int *pa[3]={a[0],a[1],a[2]};

int *pa[3]={a[0],a[1],a[2]};我想知道这是2维数组指针吗?为什么不是(*pa)[3]呢??????
最好能详细点 归下类 不甚感激啊!!!

int *pa[3] ---- 一个含有3个元素的数组,其中每个元素都是指涉物为int
类型的指针,数组名是pa
pa[1]=a[0];pa[1]=a[1];pa[2]=a[2];
每个pa元素指向一个int数组(int*[]),比下面的要好,
对代码起了注释的作用

int (*pa)[3] --- pa是一个指向数组的指针,所指涉的数组含有三个int元
素。所以 pa 是指向int数组的指针,每个pa元素是“二
级指针 (int**)”,而不是“二维指针”,一维的二级真


如果我在面试你,你写了(2),说明你是毕业生,如果你使用了反而简单的(1),我会认为你已经懂得了如何用代码进行注释,恭喜你,你入围了 :-)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-01
int *a; //整型指针
int **a //指向指针的指针,它指向的指针是指向一个整数

int *a[10]; //指针数组,每一个元素都是一个指向整数的指针
int (*a)[10];//一个指针,指向有10个整数的数组
int (*a)(int,int);//一个函数指针,该函数返回一个int,参数有2个int
int (*a[10])(int);//一个指针数组,每个元素都是一个函数指针,每个函数都是返回int,有一个int参数

类似的还有
int (**a)[10];
int *(*a)(int);
int *(*a[10])(int,int);
第2个回答  2010-06-01
int *pa[3];这表数组里面存放在是指针,
int(*pa)[3] 这里存放在整形数据,指针指向这些数
相似回答