找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 681|回复: 2

+++i是怎么计算的?

[复制链接]

4

主题

12

回帖

105

积分

注册会员

积分
105
发表于 2024-1-6 15:21:13 | 显示全部楼层 |阅读模式
这种表达式是怎么个结合的? 前缀++和一元运算符的+ 优先级一样的

我看了下几个编译器  都是按照 ++(+i) 这种方式计算的,最后提示错误

那为什么不是按照+(++i)  又或者  +(+(+i))呢?




344

主题

255

回帖

2666

积分

管理员

积分
2666
发表于 2024-1-6 17:11:44 | 显示全部楼层
ISO/IEC 9899:2011,6.3
4  If the input stream has been parsed into preprocessing tokens up to a given character, the next preprocessing token is the longest sequence of characters that could constitute a preprocessing token.

所以,
+++i
在解析时要按照可以组成预处理器记号的最长序列来拆分,即,拆分成
++
+
i

4

主题

12

回帖

105

积分

注册会员

积分
105
 楼主| 发表于 2024-1-6 18:48:50 | 显示全部楼层
本帖最后由 xiaocai 于 2024-1-6 20:26 编辑
站长 发表于 2024-1-6 17:11
ISO/IEC 9899:2011,6.3
4  If the input stream has been parsed into preprocessing tokens up to a give ...

懂了,那么

+++++i+++i++ 会按照   (++(++(+(i++))))+(i++)  计算
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2024-7-27 12:37 , Processed in 0.208150 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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