Java中类型转换的优先级是什么?

30
如果我有一行代码,类似于:
int s = (double) t/2   

它与之前的内容是否相同?

int s = (double) (t/2)

或者
int s = ((double) t)/2

?


https://dev59.com/k2025IYBdhLWcg3w25uy - knoight
1个回答

34

请查看这篇关于运算符优先级的表格以更好地理解。简单来说,类型转换比除法操作具有更高的优先级,因此它会产生与以下代码相同的输出:

int s = ((double)t) / 2;

正如knoight所指出的那样,这并不是一个没有括号时的技术上同样的操作,因为它们也有优先级。然而,对于这个例子而言,它将提供相同的结果,实质上是等效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接