发表时间:2022-03-25来源:网络
读者可能还对学校里的算术练习记忆犹新,在计算机上也能够获得同样的乐趣,C++使用运算符来运算。它提供了几种运算符来完成五种基本的算术运算:加法、减法、乘法、除法以及求模。每种运算符都使用两个值来计算结果。运算符及其操作数构成了表达式,例如:int wheels = 4 + 2;4和2都是操作数,+是加法运算符,4+2则是一个表达式,加减乘除就不多赘述了,只说一下取余:%,5%2结果就是1,因为余数就是1。而且%的操作数只能是整数。
int a = 2 - 3 * 4 + 5;操作数3旁边有两个运算符 - 和 *,当多个运算符可用于同一个操作数时,C++使用优先级规则来决定先使用哪个运算符,和我们小数学的四则运算一样,先乘除,再加减。答案为-5,优先级*、/、%同级。
float logs = 120 / 4 * 5;有时候优先级列表并不够用,操作数4也位于两个运算符之间,但运算符乘除一样,计算机该怎么计算呢,这里答案是6,因为C++的结合性,将从右往左运算。
int dues = 20 / 4 + 2 * 3;仅当两个运算符被用于同一个操作数时,优先性和结合性规则才有效,优先级表示在做加法之前必须计算除法和乘法,但是优先级和结合性都没有指出应该先计算20 / 4还是2 * 3;事实上,C++吧这个问题留给了实现,让它来决定在系统中的最佳顺序。
运算符优先性和结合性在C++中远远不止这么一点,当逻辑运算符,算术运算符,关系运算符等结合在一起时,那才是脑壳大(我们后面慢慢来)。
C++丰富的类型允许根据需要选择不同的类型,这也使计算机的操作更复杂。例如,将两个short值相加涉及到的硬件编译指令可能会与两个long值相加不同。由于有11种整型和3种浮点类型,因此计算机需要处理大量不同的情况,尤其是对不同的类型进行运算时。为处理这种潜在的混乱,C++自动执行很多类型转换==>>:
一、将一种算术类型的值赋给另一种算术类型的变量时,C++将对值进行转换; 二、表达式种包含不同的类型时,C++将对值进行转换; 三、将参数传递给函数时,C++将对值进行转换。
如果程序员不知道进行这些自动转换时将发生的情况,将无法理解一些程序的结果,隐式转换:低精度-》高精度,有符号-》无符号。优先级:int -> unsigned int -> long -> unsigned long -> long long -> unsigned long long -> float -> double -> long double。比如说宁不小心把一个浮点数赋值给了整型:--> int a = 1.34;根据隐式转换,C++将直接丢弃小数部分,所以a = 1;(注意是直接丢弃,而不是四舍五入!)。继续:--> int b = 7.2E12;

整型变量无法存储7.2E12,这导致C++没有对结果进行定义的情况发生,在我这种系统中b的值为2147483647,在不同编译器上,值也不一定是这个。
下面看一个经典例子:
查看代码#include #include using namespace std; int main() { unsigned int a = 6; int b = -20; cout
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14