C语言指针和运算符优先级的问题

我定义一个二维数组的指针int(*p)[4],为什么*p要用括号括起来的,不要说不括起来就是指针数组了,这个我知道,我想从运算符优先级和结合性的角度解释。忘高手指点。。。... 我定义一个二维数组的指针 int (*p)[4],为什么*p要用括号括起来的,不要说不括起来就是指针数组了,这个我知道,我想从运算符优先级和结合性的角度解释。忘高手指点。。。 展开
 我来答
百度网友9e6b24d
2011-05-28 · TA获得超过166个赞
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:0
展开全部
[]和()的优先级是1,而*的优先级是2,优先级小的先处理,所以不加括号的*p[4],就等价于*(p[4]),所以先看p[4]这一部分,就类似a[4]表明这是一个数组,那么*(p[4])就类似*(p),表明是一个指针,由于先是数组,那么*(p[4])就是一个以指针为元素的数组,同理 (*p)[4],先是指针,再是数组(注意1级运算符先左后右),那么就是一个指向数组的指针
aizhukaiyi
推荐于2016-08-15 · TA获得超过105个赞
知道答主
回答量:41
采纳率:0%
帮助的人:50.8万
展开全部
[ ]优先级比*的高,不加()时是先运算p[ ],它是数组,然后运算*,才是指针,也就是 *(p[ ]),表示的是一个指向数组的指针;
而 ( *p ) [ ],先运算*,是指针,然后运算[ ],是数组,也就是由多个指针构成的指针数组。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TINAoif
2011-05-28 · TA获得超过170个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:102万
展开全部
()的优先级 高啊。所以表示*p有四个整数类型的元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式