2 trybye TRYBYE 于 2016.01.15 20:08 提问

这个运算顺序是怎么样的,*和++是同一优先级的吧,而且是右结合

图片说明

5个回答

caozhy
caozhy   Ds   Rxr 2016.01.15 20:21

返回的是自增以前的值,然后指针自增。
相当于
p->str ...
p = p++;

devmiao
devmiao p = p++;错了,是p = p+1;
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.15 20:24

结合你昨天的问题来说,写程序的根本价值是让人理解程序,或者用人理解的方式写程序。因此并不是说,编译器能编译通过的代码,就是没问题的代码。
这种写代码所需要的准则如同交通规则,虽然看不见,但是确实存在。你不能因为汽车可以闯红灯就认为闯红灯是正常的。
编写含义模糊含混的代码,搞得“没有思路”,再画什么流程图,这不是很搞笑么

qq_27183003
qq_27183003   Ds   Rxr 2016.01.16 22:18

相当于:

*(p->str);
p++;

p++是先用后加,++p是先加后用。

enpterexpress
enpterexpress   2016.01.15 21:19

图片说明有什么问题吗?
先进行++,只不过+1是运行指针以后进行的

u013427969
u013427969   2016.01.16 19:13

盆友 这种问题其实没有必要 因为真正编程的时候不会出现这种代码 可读性太差了
而且这种情况是由于优先级产生的 而优先级又是哪里来的呢 ?一部分 C标准有定义 还有就是实现的时候编译器的问题了
程序员的生命是如此的珍贵 在这个波澜壮阔的时代 更要把光阴用在有价值的地方 别钻牛角尖

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!