mshd.net
当前位置:首页 >> C语言int (*p)[4]和int *p[4]区别 >>

C语言int (*p)[4]和int *p[4]区别

int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义了。 int (*p)[4]; //定义一个数组指针,该指针指向含4个元素的一维数组(数组中每个元素是int型)。 区分int *p[n]; 和int (*p)[n]; 就要...

第一个是指针数组,第二个是数组指针。区别是他是一个指针还是多个指针。 数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的...

楼上说的是错的,int *p[5],首先它是一个数组,它的大小是5,它里面存放的数据类型是int *,也就是整型指针。 所以它叫指针数组、 (从右向左解析这个表示) int (*p)[5],首先p是一个指针,指向大小为5的数组,因此这叫数组指针。(括号优先) ...

是一样的,括号没什么用 都是表示一个指针数组,数组中有4个元素,每个元素都是一个int类型的指针

答案是D int* p[4];是定义了一个数组,有数组元素是类型是int* A选项是定义了一个指针,该指针指向的类型是int[4],是个数组的指针 B选项是定义了一个数组,元素类型是int C选项是定义了一个二级指针 D选项的含义和int*p[4]是一样的,是个指针数组

*p[4]这指针数组,定义一个数组,里面存放的是指针。 (*p)[4]定义的是一个指向一维数组的指针,这是一个指针,p++相当于p的地址相加了1*4 举例说明: #include void main() { int a[2][2]={{1,2},{8,9}}; int *p[4],(*q)[2]; q=a; p[0]=&a[0][0...

int *p;——声明一个指向int型变量的指针p。 int【*p】【4】——这是错的,应该是int (*p)[4];——声明一个指向具有4个int型元素的数组的指针p。 int(*p)(int int)——声明指向一个具有两个int型形参、返回int型值的函数的指针p。

前者是由程序员动态申请的内存,编译器不负责释放,如果不手动释放可能会出现内存泄漏,后者是声明数组,由编译器负责分配和回收内存空间。

1,前者,p是一个指针,后者p是一个数组,差别太大,以至于没有什么相同的地方(⊙﹏⊙) 2,没太理解问题,请用一小段代码说明。

网站首页 | 网站地图
All rights reserved Powered by www.mshd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com