- #include
- int main()
- {
- using namespace std;
- cout.setf(ios_base::fixed,ios_base::floatfield);
- cout<<"Integer division:9/5="<<9/5<
- cout<<"Floating-point division:9.0/5.0=";
- cout<<9.0/5.0<
- cout<<"Mixed division:9.0/5="<<9.0/5<
- cout<<"double constants:le7/9.0=";
- cout<<1.e7/9.0<
- cout<<"float constants:le7f/9.0f=";
- cout<<1.e7f/9.0f<
- return 0;
- }
3.4.2
操作数4也位于两个操作符中间,但操作符/和*的优先级相同,因此优先级本身并不能指出程序究竟
是先计算120除以4,还是先计算4乘以5。因为第一种选择得到的结果是150,而第二种选择的结果是6,
因此选择十分重要。当两个操作符的优先级相同时,C++将看操作数的结合性(associativity)是从左到右,
还是从右到左。从左到右的结合性意味着如果两个优先级相同的操作符被同时用于同一个操作数,则首先
应用左侧的操作符。从右到左的结合性则首先应用右侧的操作符。附录D也列出了结合性方面的信息。从
中可以看出,乘除都是从左到右结合的。这说明应当先对4使用左侧的操作符。也就是说,用120除以4,
得到的结果为30,然后再乘以5,结果为150。
注意,仅当两个操作符被用于同一个操作数时,优先级和结合性规则才有效。请看下面的表达式:
int dues = 20 * 5 + 24 * 6;
操作符优先级表明了两点:程序必须在做加法之前计算20*5,必须在做加法之前计算24*6。但优先级
和结合性都没有指出应先计算哪个乘法。读者可能认为,结合性表明应先做左侧的乘法,但是在这种情况
下,两个*操作符并没有用于同一个操作数,所以该规则不适用。事实上,C++把这个问题留给了实现,让
它来决定在系统中的最佳顺序。对于这个例子来说,两种顺序的结果是一样的,但是也有两种顺序结果不
同的情况。在第5章讨论递增操作符时,将介绍一个这样的例子。
除法分支
除法操作符(/)的行为取决于操作数的类型。如果两个操作数都是整数,则C++将执行整数除法。这
意味着结果的小数部分将被丢弃,使得最后的结果是一个整数。如果其中有一个(或两个)操作数是浮点
值,则小数部分将保留,结果为浮点数。程序清单3.11演示了C++除法如何处理不同类型的值。和程序清
单3.10一样,该程序也调用setf()成员函数来修改结果的显示方式。
-
相关阅读:
了解Web3,读这篇就够了
Web实践问题记录
热门Java开发工具IDEA入门指南——了解并学习IDE
Go并发可视化解释 – select语句
如何成功将 API 客户的 transformer 模型推理速度加快 100 倍
持续集成部署-k8s-配置与存储-配置管理:SubPath
yolov5的网络结构输入输出讲解,利用netron工具进行分析,详细解释yolov5s的输入输出信息,方便后期进行tensorrt加速解析数据
libigl 网格等值线
java计算机毕业设计教务排课系统源码+mysql数据库+系统+lw文档+部署
Jmeter接口自动化(六)前置处理器
-
原文地址:https://blog.csdn.net/Popcorn_zyh/article/details/133931244