🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 【知识精讲】重新认识基本运算 ## Part1 数学中有四个基本运算,它们是加、减、乘、除。是不是觉得小渡一下把你带回到了小学的时代?在计算机的高级语言程序设计中,基础的数学运算肯定是少不了的。 在 C++ 语言中,也有我们很熟悉的四则运算的运算符: * 加法,使用加号`+`作为运算符,例如`a + b` * 减法,使用减号`-`作为运算符,例如`a - b` * 乘法,区别于我们平时手写的乘号“×”,C++ 语言中我们使用`*`作为乘号,例如`a * b` * 除法,区别于我们平时写的除号“÷”和写分式时的“—”,在 C++ 语言中我们使用`/`作为除号,例如`a / b` ## Part2 除了我们熟悉的加、减、乘、除,在 C++ 语言中,我们还可以使用一种运算——**求余**运算(也叫**模运算**)。顾名思义,求余运算,就是求两个整数相除以后的余数。 如果我们求 212121 除以 444 的余数,那么我们会得到 111 。 在 C++ 语言中,我们用`%`作为求余运算的运算符,可以写成例如`a % b`的形式。对于上面的例子,我们可以直接写 `21 % 4`——这个运算式的值将会是 1。 ## Part3 不知道你发现了没有,我们在这里提到的所有的算术运算符,无论是加、减、乘、除还是求余,在运算符的前后各有一个被应用于运算过程的值,我们称这种运算符为**双目运算符**。 我们之前学习赋值的时候学到的`=`赋值运算符,也是一个双目运算符。 我们可以将赋值运算符和这里讲到的算术运算符结合,得到一些有意思的表达: * `a = 1 + b;` 表示数值 111 加上变量 `b` 内的值的结果被赋值给 `a` * `a = b * c;` 表示将变量 `b` 内的值乘以变量 `c` 内的值所得的结果赋值给 `a` * `a = a + 1;` 表示将数值 111 加上变量 `a` 内的值的结果赋值给 `a` ## Part4 通过变量、常量数值和运算符构成的结果是可以连写的,我们写`a = 1 + 2 + 3`这样的形式,可以被理解成 1+21 + 21+2 的运算结果通过加法运算符再次和 333 进行了加法,得到的值被赋值给了 `a`。但是,如果我们写`b = 1 + 2 * 3`,则表示 111 通过加法运算符和 2∗32 \* 32∗3 的运算结果进行了加法,得到的值被赋值给了 `b`。 为什么会有这样的差异呢?学过数学的你一定不会觉得很奇怪,如数学中的运算一样,C++ 语言的基本运算符也是有优先级的,乘法、除法的优先级比加法、减法要更高。 如果我们想强制改变这种默认优先级下的运算顺序,C++ 语言中也设计了一种和数学中教的一模一样的工具——小括号。如果你希望 1+21 + 21+2 的运算结果通过乘法运算符和 333 进行乘法,并把结果赋值给 `b`,那么我们需要把运算过程写成`b = (1 + 2) * 3`。