如果您采用 Java 的原始数字类型加上布尔值,并将其与 C++ 等效类型进行比较,那么运算符(例如优先级规则或位操作运算符的作用)是否存在任何差异?还是括号的作用?
换句话说,如果我采用 Java 表达式并尝试在 C++ 中编译并运行它,它是否总是会编译并始终给出相同的结果?
-
对于这样的表达式:
a = foo() + bar();
在 Java 中,求值顺序是明确定义的(从左到右)。 C++ 没有指定是否foo()
or bar()
首先被评估。
-
像这样的东西:
i = i++;
在 C++ 中未定义,但在 Java 中又定义良好。
在 C++ 中,对负数执行右移是实现定义/未定义的;而在 Java 中它是明确定义的。
另外,在 C++ 中,运算符&
, |
and ^
是纯位运算符。在 Java 中,它们可以是按位运算符或逻辑运算符,具体取决于上下文。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)