打印
[C语言]

p++与*p++的区别

[复制链接]
2691|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 | 只看该作者
长知识,长见识哈哈

使用特权

评论回复
5
gonggu8181| | 2013-10-29 15:40 | 只看该作者
一个变量,一个地址

使用特权

评论回复
6
wangguiyuan1983| | 2014-9-13 00:56 | 只看该作者
学习了!!!!!

使用特权

评论回复
7
李冬发| | 2014-9-13 02:13 | 只看该作者
还是别这样写吧。改成:
(*p)++;

*p;
p++;

使用特权

评论回复
8
lcofjp| | 2014-9-13 07:04 | 只看该作者
李冬发 发表于 2014-9-13 02:13
还是别这样写吧。改成:
(*p)++;

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

使用特权

评论回复
评论
李冬发 2014-9-14 01:51 回复TA
问题是你能确定他原来的确切意思吗? 
9
南宫云明| | 2014-9-13 07:42 | 只看该作者
多加一个括号不行吗?非得这么纠结。。。

使用特权

评论回复
10
从此消失| | 2014-9-27 23:20 | 只看该作者
本菜鸟认为是*p++好,至于为什么,你如果先p++然后不还得取内容么,一个意思,而且我感觉你有个问题就是第一次怎么取内容,所以还是*p++好点混点威望分哈哈

使用特权

评论回复
11
weiyg8051| | 2014-9-28 10:29 | 只看该作者
这样写就是不好的,不同的编译器可能会出不同的结果。应该加括号或写成2行

使用特权

评论回复
12
ccxlslr| | 2014-9-28 12:13 | 只看该作者
weiyg8051 发表于 2014-9-28 10:29
这样写就是不好的,不同的编译器可能会出不同的结果。应该加括号或写成2行 ...

C编译器是严格按照规则来的,有些规则是确定,不存在不确定因素。上面的运算符优先级顺序,就是确定的

使用特权

评论回复
13
排山倒海| | 2014-9-28 12:45 | 只看该作者
国外的一些C语言书是建议用括号来保证,我比较讨厌不用括号的方式,不想浪费脑力在**优先级方面。

使用特权

评论回复
14
ccxlslr| | 2014-9-28 13:11 | 只看该作者
排山倒海 发表于 2014-9-28 12:45
国外的一些C语言书是建议用括号来保证,我比较讨厌不用括号的方式,不想浪费脑力在**优先级方面。 ...

这个没法加括号,加了意思不一样。
对于一些容易误会的加上括号。会更清析一些。但一些比较明显的。就像乘法和加法,你给乘法加上括号。也没什么意思

使用特权

评论回复
15
排山倒海| | 2014-9-28 21:11 | 只看该作者
ccxlslr 发表于 2014-9-28 13:11
这个没法加括号,加了意思不一样。
对于一些容易误会的加上括号。会更清析一些。但一些比较明显的。就像 ...

不好意思,我没想清楚就回复了,该面壁。这种情况确实不好用括号。

使用特权

评论回复
16
hahadan| | 2014-9-28 21:25 | 只看该作者
MARK

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

50

帖子

1

粉丝