C++-3运算符-笔记
原创
©著作权归作者所有:来自51CTO博客作者chen_51cto的原创作品,请联系作者获取转载授权,否则将追究法律责任
3 运算符
**作用:**用于执行代码的运算
本章我们主要讲解以下几类运算符:
运算符类型 | 作用 |
算术运算符
| 用于处理四则运算
|
赋值运算符
| 用于将表达式的值赋给变量
|
比较运算符
| 用于表达式的比较,并返回一个真值或假值
|
逻辑运算符
| 用于根据表达式的值返回真值或假值
|
3.1 算术运算符
作用:用于处理四则运算
算术运算符包括以下符号:
运算符 | 术语 | 示例 | 结果 |
+
| 正号
| +3
| 3
|
-
| 负号
| -3
| -3
|
+
| 加
| 10 + 5
| 15
|
-
| 减
| 10 - 5
| 5
|
*
| 乘
| 10 * 5
| 50
|
/
| 除
| 10 / 5
| 2
|
%
| 取模(取余)
| 10 % 3
| 1
|
++
| 前置递增
| a=2; b=++a;
| a=3; b=3;
|
++
| 后置递增
| a=2; b=a++;
| a=3; b=2;
|
--
| 前置递减
| a=2; b=--a;
| a=1; b=1;
|
--
| 后置递减
| a=2; b=a--;
| a=1; b=2;
|
示例1:
//加减乘除
int main() {
int a1 = 10;
int b1 = 3;
cout << a1 + b1 << endl;
cout << a1 - b1 << endl;
cout << a1 * b1 << endl;
cout << a1 / b1 << endl; //两个整数相除结果依然是整数
int a2 = 10;
int b2 = 20;
cout << a2 / b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 / b3 << endl; //报错,除数不可以为0
//两个小数可以相除
double d1 = 0.5;
double d2 = 0.25;
cout << d1 / d2 << endl;
system("pause");
return 0;
}
总结:在除法运算中,除数不能为0
示例2:
//取模
int main() {
int a1 = 10;
int b1 = 3;
cout << 10 % 3 << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
int a3 = 10;
int b3 = 0;
//cout << a3 % b3 << endl; //取模运算时,除数也不能为0
//两个小数不可以取模
double d1 = 3.14;
double d2 = 1.1;
//cout << d1 % d2 << endl;
system("pause");
return 0;
}
总结:只有整型变量可以进行取模运算
示例3:
//递增
int main() {
//后置递增
int a = 10;
a++; //等价于a = a + 1
cout << a << endl; // 11
//前置递增
int b = 10;
++b;
cout << b << endl; // 11
//区别
//前置递增先对变量进行++,再计算表达式
int a2 = 10;
int b2 = ++a2 * 10;
cout << b2 << endl;
//后置递增先计算表达式,后对变量进行++
int a3 = 10;
int b3 = a3++ * 10;
cout << b3 << endl;
system("pause");
return 0;
}
总结:前置递增先对变量进行++,再计算表达式,后置递增相反
3.2 赋值运算符
**作用:**用于将表达式的值赋给变量
赋值运算符包括以下几个符号:
运算符 | 术语 | 示例 | 结果 |
=
| 赋值
| a=2; b=3;
| a=2; b=3;
|
+=
| 加等于
| a=0; a+=2;
| a=2;
|
-=
| 减等于
| a=5; a-=3;
| a=2;
|
*=
| 乘等于
| a=2; a*=2;
| a=4;
|
/=
| 除等于
| a=4; a/=2;
| a=2;
|
%=
| 模等于
| a=3; a%2;
| a=1;
|
示例:
int main() {
//赋值运算符
// =
int a = 10;
a = 100;
cout << "a = " << a << endl;
// +=
a = 10;
a += 2; // a = a + 2;
cout << "a = " << a << endl;
// -=
a = 10;
a -= 2; // a = a - 2
cout << "a = " << a << endl;
// *=
a = 10;
a *= 2; // a = a * 2
cout << "a = " << a << endl;
// /=
a = 10;
a /= 2; // a = a / 2;
cout << "a = " << a << endl;
// %=
a = 10;
a %= 2; // a = a % 2;
cout << "a = " << a << endl;
system("pause");
return 0;
}
3.3 比较运算符
**作用:**用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
==
| 相等于
| 4 == 3
| 0
|
!=
| 不等于
| 4 != 3
| 1
|
<
| 小于
| 4 < 3
| 0
|
\>
| 大于
| 4 > 3
| 1
|
<=
| 小于等于
| 4 <= 3
| 0
|
\>=
| 大于等于
| 4 >= 1
| 1
|
示例:
int main() {
int a = 10;
int b = 20;
cout << (a == b) << endl; // 0
cout << (a != b) << endl; // 1
cout << (a > b) << endl; // 0
cout << (a < b) << endl; // 1
cout << (a >= b) << endl; // 0
cout << (a <= b) << endl; // 1
system("pause");
return 0;
}
注意:C和C++ 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。
3.4 逻辑运算符
**作用:**用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
运算符 | 术语 | 示例 | 结果 |
!
| 非
| !a
| 如果a为假,则!a为真; 如果a为真,则!a为假。
|
&&
| 与
| a && b
| 如果a和b都为真,则结果为真,否则为假。
|
||
| 或
| a || b
| 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。
|
**示例1:**逻辑非
//逻辑运算符 --- 非
int main() {
int a = 10;
cout << !a << endl; // 0
cout << !!a << endl; // 1
system("pause");
return 0;
}
总结: 真变假,假变真
**示例2:**逻辑与
//逻辑运算符 --- 与
int main() {
int a = 10;
int b = 10;
cout << (a && b) << endl;// 1
a = 10;
b = 0;
cout << (a && b) << endl;// 0
a = 0;
b = 0;
cout << (a && b) << endl;// 0
system("pause");
return 0;
}
总结:逻辑与运算符总结: 同真为真,其余为假
**示例3:**逻辑或
//逻辑运算符 --- 或
int main() {
int a = 10;
int b = 10;
cout << (a || b) << endl;// 1
a = 10;
b = 0;
cout << (a || b) << endl;// 1
a = 0;
b = 0;
cout << (a || b) << endl;// 0
system("pause");
return 0;
}
逻辑或运算符总结: 同假为假,其余为真