[C语言]

正在用指针,突然想到这样操作会怎样?有兴趣的进来...

[复制链接]
870|6
手机看帖
扫描二维码
随时随地手机跟帖
chongdongchen|  楼主 | 2019-4-13 16:29 | 显示全部楼层 |阅读模式
例如:指针ptr = &a[0];
然后这样操作:*ptr = *++ptr;
会发生什么??当然实际应用不会这么写,只是觉得有意思,有兴趣的讨论讨论。

使用特权

评论回复

相关帖子

座机呀| | 2019-4-13 19:04 | 显示全部楼层
boom

使用特权

评论回复
linqing171| | 2019-4-13 20:20 | 显示全部楼层
执行顺序:
ptr = &a[0];   //ptr指向a数组,等效于ptr=a;
++ptr;             //ptr=&a[1];  这里假设ptr和a的内容是一样的字节数
*ptr = *ptr;      //a[1]=a[1];  这里执行完后了后没有什么实质性的变化。除非a[1]是非易失的

使用特权

评论回复
holle| | 2019-4-13 20:22 | 显示全部楼层
*ptr = *++ptr;
其中*和++优先级相同,结合方向都是右到左,所以先算*p = *p;然后++p;
a[0]没有变化,p指向了a[1]

使用特权

评论回复
评论
chongdongchen 2019-4-13 20:35 回复TA
既然是从右到左,那么自然是先算++啦 
雪山飞狐D| | 2019-4-13 23:04 | 显示全部楼层
   加个括号会死啊?

使用特权

评论回复
junyee| | 2019-4-14 12:21 | 显示全部楼层
回字有几种写法

使用特权

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

本版积分规则

54

主题

1229

帖子

10

粉丝