Part 1 算数运算符
基本运算符:
运算符 | 含义 | 说明 |
+ | 加法 | 根据加减运算规律计算 |
- | 减法 | |
* | 乘法 | |
/ | 除法 |
自增自减:
运算符 | 含义 | 说明 |
++ | 自增 | i+=1(让变量的值加1) |
-- | 自减 | i-=1(让变量的值减1) |
#include <iostream>
using namespace std;
int main()
{
int a = 10,b;
b = ++a;
cout << b << endl;
return 0;
}
此时输出结果为11,但请注意当要把“a”这个变量自增1,则写成“a++”即可
#include <iostream>
using namespace std;
int main()
{
int a = 10;
a++;
cout << a << endl;
return 0;
}
切勿写成下面的形式,会报错
#include <iostream>
using namespace std;
int main()
{
int a = 10;
a = ++a;
cout << a << endl;
return 0;
}
其他运算符:
运算符 | 含义 | 说明 |
% | 取模(取余) | 返回两数相除的余数 注意: 1.左右操作数均为整数 |
列题1:
【题目描述】
输入一个3位数,再倒着输出这个数
【样例代码】
#include <iostream>
using namespace std;
int main()
{
int x,y,z,num;
cin >> num;
x = num % 10;
y = num /10 % 10;
z = num / 100 % 10;
cout << x << y << z;
return 0;
}
总表:
运算符 | 含义 | 说明 |
+ | 加法 | 根据加减运算规律计算 |
- | 减法 | |
* | 乘法 | |
/ | 除法 | |
++ | 自增 | i+=1(让变量的值加1) |
-- | 自减 | i-=1(让变量的值减1) |
% | 取模(取余) | 返回两数相除的余数 |
Part2 赋值运算符
运算符 | 含义 | 说明 |
= | 赋值 | 等号右边的给左边 |
+= | 加复制 | 先在等号左边与数值进行计算后,把计算结果重新赋值回原来的变量 |
-= | 减赋值 | |
*= | 乘赋值 | |
/= | 除赋值 | |
%= | 模赋值 |
优先级:所有赋值运算符的优先级都小于算数运算符。
Part3 比较运算符(关系运算符)
数据类型:布尔值(bool),其中True(1)为真,False(0)为假。
任意非0数,布尔值输出结果为1
运算符 | 含义 | 说明 |
> | 大于 | 判断比较是否成立,成立为True,不成立为False |
>= | 大于等于 | |
< | 小于 | |
<= | 小于等于 | |
== | 等于 | |
!= | 不等于 |
注意:判断写在括号内!!!
eg:
#include <iostream>
using namespace std;
int main()
{
cout << (1 <= 2);
return 0;
}
返回为1
逻辑值:
整型中:只有0为False,其他全为True;
浮点型中:只有0.0为False,其他全为True;
字符型中:只有'/0'为False,其他全为True;
Part 4 逻辑运算符
逻辑与:&&(有一个假就假)
若&&左右两边判断都成立,其结果就成立
e.g. 1 > 2 && 1 < 2 结果为0(False)
1 < 2 && 1 < 2 结果为1(True)
逻辑或:|| (有一个真就真)
若&&左右两边判断有一个成立,其结果就成立
e.g. 1 > 2 || 1 < 2 结果为1(True)
逻辑非:!
经非逻辑运算后,相反的结果
e.g. 1 > 2 && 1 < 2 结果为1(True)
对立事件:
逻辑非运算,就相当于大于变小于等于,小于变大于等于,不等于变等于,然后或变于
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
bool flag1 = (n < 1 || n > 10);
bool flag2 = !(n < 1 || n > 10);
bool flag3 = !(n >= 1 && n <= 10);
cout << flag1 << endl;
cout << flag2 << endl;
cout << flag3 << endl;
cout << (flag1 == flag3); //由于为对立事件,所以永远成立
return 0;
}
Part 5 杂项运算符
1.sizeof():计算或号内字节大小
2.&():返回变量的地址
3.condition ? x : y (三目运算符):判断“condition(这是一个表达式)”是否成立,如果逻辑值为真(成立)输出x,逻辑值为假(不成立)则输出y*[三目运算符优先级较低,建议打括号后再使用]
eg:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int age = 12;
cout << (age >= 18 ? "成年":"未成年");
return 0;
}
输出为:
未成年
Part 6 逗号运算符
格式:
表达式1,表达式2,表达式3,表达式4
作用:同时执行多个表达式,但是他只会返回最后一个表达式的值。
比如:
a = (b=4,c=3,b+c)
a的值为:
7
Part 7 优先级
逻辑运算符 > 比较运算符 > 算数运算符 > 赋值运算符 > 逗号运算符
即 计算顺序为 算数 -> 赋值 -> 比较 -> 逻辑运算
Part 8 取区间
for example:
在Python中,区间1~15可以表示成:
1 <= a <= 15
但在c++中,只能表示成:
1 <= a && a <= 15
Part 9 逻辑短路现象
经典程序:
#include <iostream>
using namespace std;
int main()
{
int a, b;
a = 0;b = 0;
if (a++ && ++b) // 先取值a的值为false,所以++b不会执行
{
cout << "1111111111" << endl;
}
printf("a=%d\nb=%d\n",a,b);
cout << endl;
a = 0,b = 0;
if (++a || b++)// 先取值++a的值为true,所以b++不会执行
{
cout << "2222222222" << endl;
}
printf("a=%d\nb=%d\n",a,b);
return 0;
}
输出结果:
a=1
b=0
2222222222
a=1
b=0