请问 int *(p[4]) 和 int(*p)[4]的区别并举例

 我来答
手机用户36965
推荐于2018-03-26 · TA获得超过126个赞
知道答主
回答量:153
采纳率:0%
帮助的人:110万
展开全部
)[4]、**p的区别(由于里面牵扯一些东西比较深,我简单的讲讲吧)

*p[4]是指针数组,他是数组。数组里面放的是指针,简单的说定义了4个指针,分别是*p[0] *p[1] *p[2] *p[3],相当于将这四个指针打包到这个数组中

(*p)[4]是数组指针,他是指针并且是一个指向二维数组的指针。因为以行为单位,又称行指针。
通俗点讲,后面的[4]说明他的每行有4个元素,[0]代表第一列的下标,[1]代表第二列的下标,一次类推。(*p)的意思是指针p指向第一行,*(p+1)即指向第二行,同理一次类推。那么*(p+2)[3]的意思即是指二维数组第二行第四列的元素

**p是二级指针,即指向指针的指针,他也是一个指针,主要区别在于应用的范围不同,行指针作用对象仅仅是二维数组,二级指针的应用范围就广了,比较典型的就是他可以用指针参数传递内存,指针数组和数组指针可没有这样的用法。也可以用他动态申请内存,存储二维数组元素等等

楼主耐心学习吧,只要坚持下去,这些东西都会慢慢理解的
童川NO
2011-03-03 · TA获得超过114个赞
知道答主
回答量:119
采纳率:0%
帮助的人:74.8万
展开全部
int *(p[4])是指针数组,数组内存放的是四个指针
int (*p)[4]是数组指针,数组内存放的整形,而p指向该数组。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangbwell
2011-03-03 · TA获得超过1238个赞
知道小有建树答主
回答量:490
采纳率:0%
帮助的人:726万
展开全部
int *(p[4]) p[0-4]的值的类型都是 int* 这个就是 int* a[4] 把int*当作类型来看
int(*p)[4] p用来指向a[N][4]的数组 这样赋值: p = a 或者p= &a[i]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wutiwen
2019-05-28
知道答主
回答量:4
采纳率:0%
帮助的人:3866
展开全部
有必要正本清源:
int *(p[4]) 就是数组 加个()而已 等同于 int * p[4]
int(*p)[4] 就是指针
简单明了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式