在C语言中, *(p++)、 *(++p) 、*++p 、*p++有什么区别
5个回答
展开全部
jiqing0925 请不要误人子弟,
*(p++) 和 *p++效果一样,都是先取*p值,然后使p加1
*(++p)和*++p都是先P 自加,再取*p值
*(p++) 和 *p++效果一样,都是先取*p值,然后使p加1
*(++p)和*++p都是先P 自加,再取*p值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用jiqing0925的回答:
*(p++) 取(p+1)处地址的值。
*(++p) 取(p+1)处地址的值。和上面一样。
*++p 取(p+1)处地址的值。和上面一样。
*p++ 唯一不同的一个,先取p地址处的值,再对p执行+1。
要注意的是,这里的+1并不是绝对地向前移动一个字节。
如果p是char型指针,则是向前移动一个字节。
如果p是int型指针,则是向前移动4个字节。
*(p++) 取(p+1)处地址的值。
*(++p) 取(p+1)处地址的值。和上面一样。
*++p 取(p+1)处地址的值。和上面一样。
*p++ 唯一不同的一个,先取p地址处的值,再对p执行+1。
要注意的是,这里的+1并不是绝对地向前移动一个字节。
如果p是char型指针,则是向前移动一个字节。
如果p是int型指针,则是向前移动4个字节。
展开全部
*(p++)等价于*p++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用jiqing0925的回答:
*(p++) 取(p+1)处地址的值。
*(++p) 取(p+1)处地址的值。和上面一样。
*++p 取(p+1)处地址的值。和上面一样。
*p++ 唯一不同的一个,先取p地址处的值,再对p执行+1。
要注意的是,这里的+1并不是绝对地向前移动一个字节。
如果p是char型指针,则是向前移动一个字节。
如果p是int型指针,则是向前移动4个字节。
*(p++) 取(p+1)处地址的值。
*(++p) 取(p+1)处地址的值。和上面一样。
*++p 取(p+1)处地址的值。和上面一样。
*p++ 唯一不同的一个,先取p地址处的值,再对p执行+1。
要注意的是,这里的+1并不是绝对地向前移动一个字节。
如果p是char型指针,则是向前移动一个字节。
如果p是int型指针,则是向前移动4个字节。
展开全部
*p++也是指向下一个元素 要是执行+1的话得加括号(*p)++
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询