C++ primer Plus学习日记——操作运算符
在记录对运算符的认识之前,我必须先记录一句话,希望我每次复习都能看到。
数据类型是很重要的,它的确定同时确定了该数据所能进行的运算,也就确定了你对运算符的使用方式。
我们首先了解运算符是为了运算数据而创造的,运算符一定要伴随着数据出现,并且与数据结合。
多个运算符结合一个数据时,就会产生运算符优先级的问题,什么都不说了,先附一张运算符优先级表:
运算符 | 结合性 | 含义 |
---|---|---|
优先级第一组: | ||
:: | 作用域解析运算符 | |
优先级第二组 | ||
(表达式) | 分组 | |
() | L-R | 函数调用 |
() | 值构造,即type(exper) | |
[] | 数组下标 | |
-> | 间接成员运算符 | |
. | 直接成员运算符 | |
const_cast | 专用的类型转换 | |
dynamic_cast | 专用的类型转换 | |
reinterpret | 专用的类型转换 | |
static_cast | 专用的类型转换 | |
typeid | 类型标识 | |
++ | 加一运算符,后缀 | |
– | 减一运算符,后缀 | |
优先级第三组(全是一元运算符) | ||
! | R-L | 逻辑非 |
~ | 位非 | |
+ | 一元加号(正号) | |
- | 一元减号(负号) | |
++ | 加一运算符,前缀 | |
– | 减一运算符,后缀 | |
& | 地址 | |
* | 解除引用(间接值) | |
() | 类型转换,即(type)exper | |
sizeof | 长度以字节为单位 | |
new | 动态分配内存 | |
new[ ] | 动态分配数组 | |
delete | 动态释放内存 | |
delete[ ] | 动态释放数组 | |
优先级第四组 | ||
.* | L-R | 成员接触引用 |
->* | 间接成员解除引用 | |
优先级第五组(全是二元运算符) | ||
* | L-R | 乘 |
/ | 除 | |
% | 摸(余数) | |
优先级第六组(全是二元运算符) | ||
+ | L-R | 加 |
- | 减 | |
优先级第七组 | ||
<< | L-R | 左移 |
>> | 右移 | |
优先级第八组 | ||
< | L-R | 小于 |
<= | 小于等于 | |
> | 大于 | |
>= | 大于等于 | |
优先级第九组 | ||
== | L-R | 等于 |
!= | 不等于 | |
优先级第十组 | ||
& | L-R | 按位AND |
优先级第十一组 | ||
^ | L-R | 按位XOF(异或) |
优先级第十二组 | ||
L-R | 按位OR | |
优先级第十三组 | ||
&& | L-R | 逻辑AND |
我觉得这些应该就够我用了,其中有一小部分不知道咋用,其他的都知道能拿来干嘛,所以其实这一章的内容主要看优先级。
//it`s a attempts to whrite my code.
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0
}