请教一个关于指针的问题

[复制链接]
2583|8
 楼主| lml198694 发表于 2007-12-7 17:35 | 显示全部楼层 |阅读模式
我刚刚学单片机不久,对指针的运用还很不灵活,下面是我对指针中的一个疑问。
*P++;等价于*(P++);那么应该先加后输出啊,为什么调试是先输出后指向后一个呢?
sz_kd 发表于 2007-12-7 17:42 | 显示全部楼层

本来就是先输出*P后P++指向下一个地址

 楼主| lml198694 发表于 2007-12-7 18:51 | 显示全部楼层

我顶

可是按优先级来说的话,应该是先执行括号内的计算啊,那么应该先加后用啊。
请教LS.
sz_kd 发表于 2007-12-7 23:03 | 显示全部楼层

整个刮号表达试结果是先取出P参与*P运算,再P加1啊

你找本C语言书看下把
ayb_ice 发表于 2007-12-8 07:57 | 显示全部楼层

书上说的是对的

 楼主| lml198694 发表于 2007-12-8 08:48 | 显示全部楼层

我顶

谢谢各位大侠了啊。
hbicecream 发表于 2007-12-8 09:12 | 显示全部楼层

不要在这种问题上费脑筋

完全可以写成2个语句,让编译器来优化
 楼主| lml198694 发表于 2007-12-11 10:02 | 显示全部楼层

我顶

请问一下,编译器编译时,是如何实现优化的呢?
我还是不了解怎样编的程序能够做到最优化?
酷每秒 发表于 2007-12-11 12:03 | 显示全部楼层

读程序的时候有必要争究,写的话就...呵呵


  优先级是++高于*;但是P++与++P的区别是:前者先将P带入运算,后自增;

后者是先自增,后将自增之后的值代入运算。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

119

帖子

0

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