int * p[n] 、int (* p)[n] 这两者之间有什么区别呢?

2024-12-04 17:38:35
推荐回答(3个)
回答1:

int * p[n] 是数组,数组的含有n个元素,每个元素是int*类型的,即int类型的指针
int (* p)[n] 是指针,它指向一个含有n个元素的int类型数组的指针

回答2:

第一个是指针数组。
int a;
int b;
int c;
int *p[3] = {&a,&b,&c};
他里面的内容都是指针;

第二个是数组指针
int a[3][4];
int (*b)[4];
b = a; //
此时b就相当于a 所有a的操作b都可以!
a[3][4]相当于a[3] ,a[3]又是一个有4个元素的数组;
就可以简单的当时一维数组: int a[3];
int *b;
b = a;
b指向的每一个地址的值都是一个有4个元素的数组!

回答3:

int *p[4]; //表示指针数组,有四个元素,每个元素都是整型指针。
int (*p)[4]; //表示行指针,所指对象一行有四个元素。
int *p(void); //表示函数,此函数无参,返回整型指针。
int(*P)(void) ;//表示函数指针,可以指向无参,且返回值为整型指针的函数。