(1LL + lo + hi) 与(lo + hi + 1LL)的区别

在表达式 (1LL + lo + hi) 中,(这是建议的写法)

变量的类型变化示意图

  1. 1LL + lolong long + int -> long longlo 被提升为 long long
  2. (1LL + lo) + hilong long + int -> long longhi 被提升为 long long
在表达式 lo + hi + 1LL 中,(不推荐的写法)

变量的类型变化示意图

  1. lo + hiint + int -> int(结果是 int 类型)
  2. (lo + hi) + 1LLint (结果被提升为 long long) + long long -> long long(结果是 long long 类型)

所以,在内存中,lohi 的初始类型为 int,但是一旦它们参与了与 1LL 的运算,整个表达式的类型就会被提升为 long long 类型。这样做的目的是为了防止可能的溢出,并确保运算结果的准确性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值