C++语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使C++语言功能十分完善。这也是C++语言的主要特点之一。
主要用于计算。
+
、-
、*
、/
、%
、++
、--
除法符号/
分为整除和精确除。
xxxxxxxxxx
21cout << 10 / 3 ; // 3
2cout << 10 / 3.0 ; // 3.33333
取余符号%
两边的数字必须是整数。
xxxxxxxxxx
91int a = 5;
2cout << a++; // 先输出5,然后a变成6
3cout << a++; // 先输出6,然后a变成7
4cout << ++a; // 先a变成8,然后输出8
5cout << ++a; // 先a变成9,然后输出9
6cout << a--; // 先输出9,然后a变成8
7cout << a--; // 先输出8,然后a变成7
8cout << --a; // 先a变成6,然后输出6
9cout << --a; // 先a变成5,然后输出5
主要用于关系比较。结果为bool类型。
>
、<
、>=
、<=
、==
、!=
xxxxxxxxxx
21cout << 1 > 4 ; // 0
2cout << boolalpha << 1 > 4 ; // false
用于判断逻辑对错。结果为bool类型。
&&
、||
、!
xxxxxxxxxx
101真&&真 = 真
2真&&假 = 假
3假&&真 = 假
4假&&假 = 假
5真||真 = 真
6真||假 = 真
7假||真 = 真
8假||假 = 假
9!假 = 真
10!真 = 假
用于数字的二进制运算。
&
、|
、~
、^
、<<
、>>
需要先将数字转换成二进制形式,在进行上述操作。
xxxxxxxxxx
61// 6的二进制:110
2// 3的二进制:11
3cout << (6 | 3); // 7(111)
4cout << (3 << 1); // 6(110)
5// 9的二进制:1001
6cout << (~9); // 10(1010) 00001001 -> 11110110负数取反 -> 00001001 + 1 -> 00001010 -> 1010 -> 10
左移一位相当于*2,右移一位相当于/2
用于赋值运算。
=
、+=
、-=
、*=
、/=
、%=
、&=
、|=
、^=
、>>=
、<<=
xxxxxxxxxx
31int a = 5;
2a = a + 5; // 等价于 a+=5
3a = a / 3; // 等价于 a/=3
与条件有关,根据条件在两个值之间做取舍。
?:
xxxxxxxxxx
11cout << (5>10?1:0);
将罗哥表达式组合成一个表达式。
,
取地址对应的值或取某个空间地址。
*
、&
求某个变量或数据的所占字节数。
sizeof
xxxxxxxxxx
41int a = 5;
2double b = 5;
3cout << sizeof(a); // 4
4cout << sizeof(b); // 8
()
、[]
、->
、.
等。
当一个表达式中包含了多个运算符时,各个运算符的优先级依次为:算术>关系>逻辑>赋值
函数名 | 格式 | 功能说明 | 例子 |
---|---|---|---|
绝对值函数 | abs(x) | 求一个数 x 的绝对值 | abs(-5)=5 |
自然数指数函数 | exp(x) | 求实数 x 的自然指数 e^x | exp(1)=2.718282 |
向下取整 | floor(x) | 求不大于实数 x 的最大整数 | floor(3.14)=3 |
向上取整 | ceil(x) | 求不小于实数 x 的最小整数 | ceil(3.14)=4 |
自然对数函数 | log(x) | 求实数 x 的自然数对数 | log(1)=0 |
指数函数 | pow(x,y) | 计算 x^y , 结果为双精度实数 | pow(2,3)=8 |
随机函数 | rand() | 产生 0 到 RAND-MAX 之间的随机整数 | |
平方根值函数 | sqrt(x) | 求实数 x 的平方根 | sqrt(25)=5 |
常量是指在程序中使用的一些具体的数、字符。在程序运行过程中,其值不能被更改。
通常有以下几种常量:
整型常量:如3、-5、0等。整型常量是表示整数的常量。有四种表示形式:
十进制形式。如99、-1。
二进制形式。以数字0b打头,由0-1构成,如0b11,表示二进制整数11,即11(2)。
八进制形式。以数字0打头,由0-7构成,如012,表示八进制整数12,即12(8)。
十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。
实型常量:如3.1、-6.1e+2(科学记数法 表示-610)。
字符常量:是用单引号括起来的字符,如 'k' 、'5' 、'%'。
注意:'a'与"a"表示的含义是不同的,'a'表示一个字符常量,"a"表示一个字符串。
定义常量通常有两种方式:
x
1
2using namespace std;
3// const:用于声明一个常量,即其值在初始化后不能被修改。const修饰符可以应用于所有类型,包括指针和引用。
4const int p = 3.14;
5int main(){
6 cout << p; // 3.14
7 return 0;
8}
x
1
2using namespace std;
3
4// #define 是一个预处理器指令,用于定义宏。这里相当于将下文中所有的p替换成3.14
5int main(){
6 cout << p; // 3.14
7 return 0;
8}