*p+1和*(p+1)的区别

p+1和(p+1)的区别主要表现在:1、优先级不同;2、操作对象不同;3、结果不同。在C/C++语言中,这两种写法在使用上会产生完全不同的结果。p+1先解引用p,再加1,所以结果是p指向的对象的值加1。而(p+1)是将p加1,然后解引用,所以结果是p指向的下一个对象的值。

*p+1和*(p+1)的区别

一、优先级不同

p+1和(p+1)在操作优先级上有所不同。在C/C++中,运算符(解引用运算符)和+(加法运算符)的优先级不同。加法运算符的优先级低于解引用运算符。因此,在p+1中,会先解引用p,然后再加1;在*(p+1)中,因为加括号改变了优先级,会先计算p+1,然后再解引用。

二、操作对象不同

p+1和(p+1)操作的对象也有区别。p+1是先对p解引用,得到p指向的对象,然后对该对象加1。而(p+1)是先将p加1,使其指向下一个对象,然后对该新对象进行解引用。

三、结果不同

p+1和(p+1)的结果是不同的。p+1先解引用p,再加1,所以结果是p指向的对象的值加1。而(p+1)是将p加1,然后解引用,所以结果是p指向的下一个对象的值。


延伸阅读:

p+1和(p+1)是什么?

1、*p+1是什么?

在C/C++中,p+1表示先取出指针p指向的值,然后对该值加1。例如,如果p是一个指向整型的指针,且其值为5,那么p+1的值就是6。

2、*(p+1)是什么?

在C/C++中,(p+1)表示先将指针p加1,然后取出新的地址所指向的值。例如,如果p是一个指向数组的指针,且数组中的元素为1,2,3,那么如果p初始指向数组的名列前茅个元素,(p+1)的值就是2,因为p+1使p指向数组的第二个元素。

文章标题:*p+1和*(p+1)的区别,发布者:飞飞,转载请注明出处:https://worktile.com/kb/p/53752

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
飞飞的头像飞飞

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部