C语言中*p+3和*(p+3)有什么区别

 我来答
伯涵容宦涉
2019-07-22 · TA获得超过3.4万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:741万
展开全部
p是一个指向内存空间地址的指针,p+3就是地址向后数三个,*(p+3)就是取p指向的再向后数3个的内存地址里的值,*(p)在非定义的状态下,是取内存空间里的值的运算
ggdmdf
推荐于2017-09-05 · TA获得超过1520个赞
知道小有建树答主
回答量:1024
采纳率:0%
帮助的人:1247万
展开全部
*p+3是先取p的值,再加上3
*(p+3)是直接取p后面第3个位置的值

int arr[] = {1, 2, 3, 5};
int p = arr;

*p + 3 = arr[0] + 3 = 4;
*(p+3) = arr[3] = 5;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0769_C
2008-03-12
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
前者是指针位置前移3位...后者是指针P所指的元素自+3..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
50573750
2008-03-12 · TA获得超过976个赞
知道大有可为答主
回答量:1800
采纳率:100%
帮助的人:0
展开全部
据大区别
比如p[0]=4,p[3]=6;

*p+3=4+3=7;
*(p+3)=p[3]=6;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式