OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6982|回复: 7

C语言问题,请不吝赐教,困扰了好久!

[复制链接]

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-4-14
在线时间
18 小时
发表于 2021-10-9 23:27:45 | 显示全部楼层 |阅读模式
10金钱
*(p++) = i  与 *p++ = i  是等价的吗,为啥VS2019编译出来是等价的,这个问题百思不得其解,困扰了我好久。

111.png
222.png

最佳答案

查看完整内容[请看2#楼]

就是一样的 ++和*同等优先级,结合方向为自右向左,因此它等价与*(p++)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
974
金钱
974
注册时间
2016-3-8
在线时间
267 小时
发表于 2021-10-9 23:27:46 | 显示全部楼层
就是一样的  ++和*同等优先级,结合方向为自右向左,因此它等价与*(p++)
回复

使用道具 举报

4

主题

881

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4195
金钱
4195
注册时间
2019-9-4
在线时间
881 小时
发表于 2021-10-10 14:34:21 | 显示全部楼层
你问的这个问题就完全就是运算优先级的问题吧,找个运算优先级的表格看一下就知道了
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-4-14
在线时间
18 小时
 楼主| 发表于 2021-10-14 21:35:28 | 显示全部楼层
pdwdzz 发表于 2021-10-9 23:27
就是一样的  ++和*同等优先级,结合方向为自右向左,因此它等价与*(p++)

这个我知道,我不理解的是,i 等于 0 时,赋值给
*p++,而这时的 *p++ 等于 arr[1],打印时 arr[1] 是等于1 的而不是 0 ,这是为何?
回复

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-4-14
在线时间
18 小时
 楼主| 发表于 2021-10-14 21:36:24 | 显示全部楼层
A571157242 发表于 2021-10-10 14:34
你问的这个问题就完全就是运算优先级的问题吧,找个运算优先级的表格看一下就知道了

优先级的问题我知道,我不理解的是打印的结果
回复

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1633
金钱
1633
注册时间
2012-8-28
在线时间
71 小时
发表于 2022-4-16 02:51:21 | 显示全部楼层
*(p++) = i  与 *p++ = i  是等价的。    ++p就有区别,在用P的值先加1       *p++是先用P的对象,然后再加1      你要理解*的作用,是取地址。p和数组arr绑定后就是arr【0】的值, P+1后就是arr【1】的值,地址以此类推。
QQ750273008有好的资料记得发给我哦。。。
回复

使用道具 举报

2

主题

255

帖子

0

精华

高级会员

Rank: 4

积分
821
金钱
821
注册时间
2013-6-5
在线时间
141 小时
发表于 2022-6-24 18:15:05 | 显示全部楼层
dugulonely 发表于 2021-10-14 21:35
这个我知道,我不理解的是,i 等于 0 时,赋值给
*p++,而这时的 *p++ 等于 arr[1],打印时 arr[1] 是等 ...

P++ 是先使用,再++
++P 是先++在使用
回复

使用道具 举报

32

主题

187

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1123
金钱
1123
注册时间
2021-3-21
在线时间
172 小时
发表于 2022-6-25 11:32:26 | 显示全部楼层
C peimer plus第六版,++(后缀)的优先级高于*,所以先计算++,再*。
慎独
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 11:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表