括号能否改变求值顺序

C++语言 码拜 9年前 (2016-04-16) 1109次浏览
本人想不出例子。
《C++ Primer》第五版,中文版。123 页。
解决方案

20

C++ ()
有很多用法
不同用法,含义不同
函数调用表达式的()只是参数表的界限
不能表示 其中实参表中,某个表达式先计算
而优先级运算符()表示优先计算括号内的表达式,
这地方应该算是可以改变顺序的
括号,还可以表示强制转换运算符 (int) x; int (x);
没有括号,
int x ;表示变量定义
但是这些都是表达式解析的时候进行的
而运行时刻顺序,由生成的代码确定
而CPU还有乱序执行能力,所以,并不是 先解析的一定先计算
但是解析的先后,可以改变表达式的含义
不同顺序解析,表达式的意义可能就不同了
另外确实有些运算符,是有序的
例如 ,逗号运算符 — ?:比较运算符号
等等是顺序计算的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明括号能否改变求值顺序
喜欢 (0)
[1034331897@qq.com]
分享 (0)