欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

C和Golang在运算符优先级方面的比较

时间:2023-06-01

问题:刚在力扣上遇到一道二分查找的题:有序数组中的单一元素。我的代码运行时出现了数组越界的情况,复查之后发现可能导致越界的地方是mid = left + right >> 1,也就是计算中间值。这条语句我用C和Java写了很多次,自信不用加括号,因为‘+’运算的优先级高于’>>‘运算。但是在Golang中不是这样,而是’>>'运算的优先级更好。解决方法:加上括号mid = (left + right) >> 1。其他,STL中在去中间值时是这样写的mid = (right - left) / 2 + left,是为了避免加法溢出(left + rigth)。C语言的运算符优先级Golang的运算符优先级

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。