说明:本人也是C++入门的小白,也是从头开始学的。文章用来记录自己的学习历程和自己总结的结论,如果有错,请在评论去指点一下。
在 C++ 编程的领域中,运算符是我们对数据进行处理和操作的实用工具。不同类型的运算符就像一套功能各异的工具,帮助我们实现各种数据处理和逻辑判断的需求。下面我们结合代码片段,来详细了解这些运算符。
一、算术运算符:基础数学运算的利器
算术运算符用于执行基本的数学运算,在 C++ 中,常见的算术运算符有 +
(加法)、-
(减法)、*
(乘法)、/
(除法)和 %
(取余)。
#include <iostream>
using namespace std;
int main() {
// 定义两个浮点数
float a = 6;
float b = 4;
// 进行加法运算
cout << "a + b 的值为:" << a + b << endl;
// 进行乘法运算
cout << "a * b 的值为:" << a * b << endl;
// 进行除法运算
cout << "a / b 的值为:" << a / b << endl;
// 进行减法运算
cout << "a - b 的值为:" << a - b << endl;
return 0;
}
运行上述代码,你会看到程序依次输出 a
与 b
相加、相乘、相除、相减的结果。
需要特别注意的是,%
取余运算符只能用于整数类型。比如:
int c = 6;
int d = 4;
cout << "c % d 的值为:" << c % d << endl;
这段代码会输出 2
,因为 6
除以 4
的余数是 2
。
二、递增运算符:轻松实现数值增长
递增运算符分为前置递增(++num
)和后置递增(num++
),它们都能让变量的值增加 1
,但使用起来有一些区别。
int num1 = 10;
++num1; // 前置递增,先加 1,再进行后续运算
int num2 = 10;
num2++; // 后置递增,先使用当前值,再进行加 1
int num3 = ++num1 * 10;
int num4 = num2++ * 10;
cout << "num1 经过递增操作后的值为:" << num1 << endl;
cout << "num2 经过递增操作后的值为:" << num2 << endl;
cout << "num3 经过前置递增操作后的值为:" << num3 << endl;
cout << "num4 经过后置递增操作后的值为:" << num4 << endl;
在这段代码中,num1
经过前置递增后,先变成 11
,再执行后续运算;num2
则是先使用 10
参与乘法运算,运算结束后自身才变为 11
。所以最终 num3
的值是 120
,num4
的值是 110
。
三、赋值运算符:数据传递的桥梁
赋值运算符用于给变量赋值,除了最基本的 =
,还有复合赋值运算符,如 +=
、-=
、*=
、/=
、%=
等,它们能让代码更加简洁。
float a = 6;
cout << "a 执行 a += 2 操作后的值为:" << (a += 2) << endl;
cout << "a 执行 a -= 2 操作后的值为:" << (a -= 2) << endl;
cout << "a 执行 a *= 2 操作后的值为:" << (a *= 2) << endl;
cout << "a 执行 a /= 2 操作后的值为:" << (a /= 2) << endl;
int c = 6;
cout << "c 执行 c %= 2 操作后的值为:" << (c %= 2) << endl;
a += 2
等价于 a = a + 2
,其他复合赋值运算符也是类似的原理。不过要记住,%=
等取余相关的复合赋值运算符只能用于整型变量。
四、比较运算符:判断的基础
比较运算符用于比较两个值的大小关系,结果会返回一个布尔值(true
或 false
),在 C++ 中,比较运算符有 ==
(等于)、!=
(不等于)、<
(小于)、>
(大于)、<=
(小于等于)、>=
(大于等于) 。
float a = 6;
float b = 4;
cout << "a是否等于b呢?:" << (a == b) << endl;
cout << "a是否不等于b呢?:" << (a != b) << endl;
cout << "a是否小于b呢?:" << (a < b) << endl;
cout << "a是否大于b呢?:" << (a > b) << endl;
cout << "a是否大于等于b呢?:"<< (a >= b) << endl;
cout << "a是否小于等于b呢?:"<< (a <= b) << endl;
因为 a
的值是 6
,b
的值是 4
,所以 a == b
的结果是 false
(在 C++ 中用 0
表示),a != b
的结果是 true
(在 C++ 中用 1
表示) ,其他比较结果也可以根据实际数值关系得出。
五、逻辑运算符:复杂判断的利器
逻辑运算符用于组合多个条件,常见的逻辑运算符有 &&
(与)、||
(或)、!
(非) ,它们的运算结果同样是布尔值。
bool bo1 = true;
bool bo2 = false;
bool bo3 = true;
bool bo4 = false;
// 逻辑非运算符 !
cout << "!bo1 的结果是: " << (!bo1) << endl;
cout << "!!bo1 的结果是: " << (!!bo1) << endl;
// 逻辑与运算符 &&
cout << "bo1 && bo2 的结果是: " << (bo1 && bo2) << endl;
cout << "bo1 && bo3 的结果是: " << (bo1 && bo3) << endl;
cout << "bo2 && bo4 的结果是: " << (bo2 && bo4) << endl;
// 逻辑或运算符 ||
cout << "bo1 || bo2 的结果是: " << (bo1 || bo2) << endl;
cout << "bo1 || bo3 的结果是: " << (bo1 || bo3) << endl;
cout << "bo2 || bo4 的结果是: " << (bo2 || bo4) << endl;
!
是非运算符,它会将布尔值取反,比如 !true
结果是 false
;&&
是与运算符,只有两边的条件都为 true
时,结果才是 true
;||
是或运算符,只要两边有一个条件为 true
,结果就是 true
。
通过学习这些 C++ 运算符,我们已经掌握了编程中处理数据和进行判断的基础技能。在后续的编程学习和实践中,熟练运用这些运算符,能够帮助我们编写出更高效、更强大的程序。
完整代码:
#include <iostream>
using namespace std;
int main(){
// 算术运算符
float a = 6;
float b = 4;
cout << "a + b 的值为:" << a + b << endl;
cout << "a * b 的值为:" << a * b << endl;
cout << "a / b 的值为:" << a / b << endl;
cout << "a - b 的值为:" << a - b << endl;
/*
a + b 的值为:10
a * b 的值为:24
a / b 的值为:1.5
a - b 的值为:2
c % d 的值为:2
*/
// 取余运算,只能用于整数类型
int c = 6;
int d = 4;
cout << "c % d 的值为:" << c % d << endl;
// 递增运算符
int num1 = 10;
++num1; // 前置递增,先加 1,再进行后续运算
int num2 = 10;
num2++; // 后置递增,先使用当前值,再进行加 1
int num3 = ++num1 * 10;
int num4 = num2++ * 10;
cout << "num1 经过递增操作后的值为:" << num1 << endl;
cout << "num2 经过递增操作后的值为:" << num2 << endl;
cout << "num3 经过前置递增操作后的值为:" << num3 << endl;
cout << "num4 经过后置递增操作后的值为:" << num4 << endl;
/*
num1 经过递增操作后的值为:12
num2 经过递增操作后的值为:12
num3 经过前置递增操作后的值为:120
num4 经过后置递增操作后的值为:110
*/
// 赋值运算符
cout << "a 执行 a += 2 操作后的值为:" << (a += 2) << endl;
cout << "a 执行 a -= 2 操作后的值为:" << (a -= 2) << endl;
cout << "a 执行 a *= 2 操作后的值为:" << (a *= 2) << endl;
cout << "a 执行 a /= 2 操作后的值为:" << (a /= 2) << endl;
cout << "c 执行 c %= 2 操作后的值为:" << (c %= 2) << endl; //只能对于整型处理运算
/*
a 执行 a += 2 操作后的值为:8
a 执行 a -= 2 操作后的值为:6
a 执行 a *= 2 操作后的值为:12
a 执行 a /= 2 操作后的值为:6
c 执行 c %= 2 操作后的值为:0
*/
// 比较运算符 == != < > <= >=
cout << "a是否等于b呢?:" << (a == b) << endl; //0
cout << "a是否不等于b呢?:" << (a != b) << endl; //1
cout << "a是否小与b呢?:" << (a < b) << endl; //0
cout << "a是否大与b呢?:" << (a > b) << endl; //1
cout << "a是否大与等于b呢?:"<< (a >= b) << endl; //1
cout << "a是否小与与等于b呢?:"<< (a <= b) << endl; //0
/*
a是否等于b呢?:0
a是否不等于b呢?:1
a是否小与b呢?:0
a是否大与b呢?:1
a是否大与等于b呢?:1
a是否小与与等于b呢?:0
*/
//逻辑运算符 &&与 ||或 !非
//非:如果a为假,则!a为真;如果a为真,则!a为假。返回的是bool值
// 定义两个布尔变量,用于演示逻辑运算符
bool bo1 = true;
bool bo2 = false;
bool bo3 = true;
bool bo4 = false;
// 逻辑非运算符 !
// 如果 a 为真,则 !a 为假;如果 a 为假,则 !a 为真
cout << "!bo1 的结果是: " << (!bo1) << endl;
cout << "!!bo1 的结果是: " << (!!bo1) << endl;
cout << "!bo2 的结果是: " << (!bo2) << endl;
cout << "!!bo2 的结果是: " << (!!bo2) << endl;
// 逻辑与运算符 &&
// 只有当 a 和 b 都为真时,a && b 的结果才为真,否则为假
cout << "bo1 && bo2 的结果是: " << (bo1 && bo2) << endl;
cout << "bo1 && bo3 的结果是: " << (bo1 && bo3) << endl;
cout << "bo2 && bo4 的结果是: " << (bo2 && bo4) << endl;
// 逻辑或运算符 ||
// 只要 a 或者 b 中有一个为真,a || b 的结果就为真,只有当 a 和 b 都为假时,结果才为假
cout << "bo1 || bo2 的结果是: " << (bo1 || bo2) << endl;
cout << "bo1 || bo3 的结果是: " << (bo1 || bo3) << endl;
cout << "bo2 || bo4 的结果是: " << (bo2 || bo4) << endl;
/*
!bo1 的结果是: 0
!!bo1 的结果是: 1
!bo2 的结果是: 1
!!bo2 的结果是: 0
bo1 && bo2 的结果是: 0
bo1 && bo3 的结果是: 1
bo2 && bo4 的结果是: 0
bo1 || bo2 的结果是: 1
bo1 || bo3 的结果是: 1
bo2 || bo4 的结果是: 0
*/
return 0;
}
运行结果为: