[C语言] p++与*p++的区别

[复制链接]
3172|15
 楼主| yutanjie 发表于 2013-9-17 13:39 | 显示全部楼层 |阅读模式
指针P指向一个数组,在循环时使用p++可以指向下一个数,使用*p++也可以指向下一个数。规范上应该使用哪一种?
ayb_ice 发表于 2013-9-17 14:26 | 显示全部楼层
*p++等效于
*p,p++
coody 发表于 2013-9-17 15:02 | 显示全部楼层
p++仅仅是p+1,*p++是先取*p,然后p+1
andyjian 发表于 2013-10-29 12:45 | 显示全部楼层
长知识,长见识哈哈
gonggu8181 发表于 2013-10-29 15:40 | 显示全部楼层
一个变量,一个地址
wangguiyuan1983 发表于 2014-9-13 00:56 | 显示全部楼层
学习了!!!!!
李冬发 发表于 2014-9-13 02:13 | 显示全部楼层
还是别这样写吧。改成:
(*p)++;

*p;
p++;
lcofjp 发表于 2014-9-13 07:04 | 显示全部楼层
李冬发 发表于 2014-9-13 02:13
还是别这样写吧。改成:
(*p)++;

楼上你的两种写法根本就不是一种意思。

评论

问题是你能确定他原来的确切意思吗?  发表于 2014-9-14 01:51
南宫云明 发表于 2014-9-13 07:42 | 显示全部楼层
多加一个括号不行吗?非得这么纠结。。。
从此消失 发表于 2014-9-27 23:20 | 显示全部楼层
本菜鸟认为是*p++好,至于为什么,你如果先p++然后不还得取内容么,一个意思,而且我感觉你有个问题就是第一次怎么取内容,所以还是*p++好点混点威望分哈哈
weiyg8051 发表于 2014-9-28 10:29 | 显示全部楼层
这样写就是不好的,不同的编译器可能会出不同的结果。应该加括号或写成2行
ccxlslr 发表于 2014-9-28 12:13 | 显示全部楼层
weiyg8051 发表于 2014-9-28 10:29
这样写就是不好的,不同的编译器可能会出不同的结果。应该加括号或写成2行 ...

C编译器是严格按照规则来的,有些规则是确定,不存在不确定因素。上面的运算符优先级顺序,就是确定的
排山倒海 发表于 2014-9-28 12:45 | 显示全部楼层
国外的一些C语言书是建议用括号来保证,我比较讨厌不用括号的方式,不想浪费脑力在**优先级方面。
ccxlslr 发表于 2014-9-28 13:11 | 显示全部楼层
排山倒海 发表于 2014-9-28 12:45
国外的一些C语言书是建议用括号来保证,我比较讨厌不用括号的方式,不想浪费脑力在**优先级方面。 ...

这个没法加括号,加了意思不一样。
对于一些容易误会的加上括号。会更清析一些。但一些比较明显的。就像乘法和加法,你给乘法加上括号。也没什么意思
排山倒海 发表于 2014-9-28 21:11 | 显示全部楼层
ccxlslr 发表于 2014-9-28 13:11
这个没法加括号,加了意思不一样。
对于一些容易误会的加上括号。会更清析一些。但一些比较明显的。就像 ...

不好意思,我没想清楚就回复了,该面壁。这种情况确实不好用括号。
hahadan 发表于 2014-9-28 21:25 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

50

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部