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]; 就要...

int *p[4], 是一个长度为4的指针数组,数组的元素为int*; sizeof(p) => 4*4 = 16;(32位系统一个指针4字节) 用法:*(p[0]) int (*p)[4] 是一个指向长度为4数组的指针,即int(*)[4]; 其本质是一个指针,如在32为系统上,sizeof(p) => 4 用法:(*p...

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

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

*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,没太理解问题,请用一小段代码说明。

楼上的回答是在不敢苟同 *p[4]、(*p)[4]、**p的区别(由于里面牵扯一些东西比较深,我简单的讲讲吧) *p[4]是指针数组,他是数组。数组里面放的是指针,简单的说定义了4个指针,分别是*p[0] *p[1] *p[2] *p[3],相当于将这四个指针打包到这个数...

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