整理笔记
常量
1.整数常量整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x或0X表示十六进制,0表示八进制,不带前缀则默认为十进制。整数常量也可以带一个后缀,后缀是U和L的组合,U表示无符号整数(unsigned),L表示长整数(long)。后
223 // 合法常量
123u // 合法常量
0xCeeL // 合法常量
078 // 非法常量:8不是八进制的数字
032UU //非法常量:后缀不能重复
85 // 十进制
0222 //八进制
0x6a //十进制
20u //无符号整数
20l //长整数
20ul //无符号长整数
2.浮点常量
浮点常量由整数、小数点、小数部分和指数部分组成。当使用小数形式表示时,必须包含小数点、指数,或者同时包含两者;当使用指数形式表达时,必须包含整数部分和小数部分,或包含两者时。带符号的指数使用e或E引入的:
3.14159 //合法常量
314159E-5L //合法常量
510E //非法常量:有不完整指数
210f //非法常量:没有小数或指数
.e55 //非法常量:缺少整数或分数
3.布尔常量
布尔常量有两个:
true值代表真
false值代表假
4.字符常量
字符常量时括在单引号中。如果常量以L开头,则表示它是一个宽字符常量(L'x'),此时它必须存储在wchar_t类型的变量中。否则,他就是一个窄字符变量('x'),此时就可以存储在char中。
转义序列表
\\ | \字符 |
\' | '字符 |
\" | "字符 |
\? | ?字符 |
\a | 警报铃声 |
\b | 退格键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
\ooo | 一道三位的八进制数 |
\xhh... | 一个或多个数字的十六进制 |
5.字符串常量
字符串常量是括在双引号中的,一个字符串包含类似字符常量的字符:普通字符、转义序列和普通字符。可以使用空格作为分隔符。
在C++中,可以使用#define预处理器或const关键字。
#define预处理器
#include<iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int mian()
{
int area;
area = LENGTH * WIDTH;
cout << area;
cout << NEWLINE;
return 0;
}
const关键字
include<iostream>
using namespace std;
int main()
{
const int LENGTH = 10;
const int WIDTH = 5;
const int NEWLINE = '\n';
int area;
area = LENGTH * WIDTH;
cout << area;
cout << NEWLINE;
return 0;
}
以上两种定义方式的结果都为
50
运算符
算数运算符
+ | 把两个操作数相加 |
- | 从第一个操作数中减去第二个操作数 |
* | 两个操作数相乘 |
/ | 分子除以分母 |
% | 取模运算符,整出后的余数 |
++ | 自增运算符,整数值加1 |
-- | 自减运算符,整数值减1 |
关系运算符
假设A的值为10,B的值为20
== | (A==B)不为真 |
!= | (A!=B)为真 |
> | (A>B)不为真 |
< | (A<B)为真 |
>= | (A>=B)不为真 |
<= | (A<=B)为真 |
逻辑运算符
假设变量A的值为1,B的值为0,则:
&& | 逻辑与运算符,两个操作数都为非零,则为真 | (A&&B)为假 |
|| | 逻辑或运算符,两个操作数有任一个为非零,则为真 | (A||B)为真 |
! | 逻辑非运算符,逆转操作数的逻辑状态 | !(A&&B)为真 |
位运算符
p | q | p&q | p|q | p^q |
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
假设A=60,B=13,现以二进制格式表示:
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
& | 二进制AND运算符复制一位到结果中 | (A&B)就会得到12,0000 1100 |
| | 二进制OR运算符赋值一位到结果中 | (A|B)就会得到61,0011 1101 |
^ | 二进制异或运算符复制一位到结果中 | (A^B)就会得到49,0011 0001 |
~ | 二进制补码运算符,具有翻转的效果 | (~A)就会得到-61,1100 0011 |
<< | 二进制左移运算符 | A<<2就会得到240,1111 0000 |
>> | 二进制右移运算符 | A>>2就会得到15,0000 1111 |
杂项运算符
sizeof | sizeof运算符返回变量的大小 |
Condition ? X : Y | 条件运算符,如果Condition为真 ? 则值为X : 否则值为Y |
, | 逗号运算符按顺序执行一系列运算,整个逗号表达式的值为最后一个表达式的值 |
. 和-> | 成员运算符用于引用类、结构和共用体的成员 |
Cast | 强制转换运算符,可以把一种运算符转换为另一种运算符 |
& | 指针运算符&,返回变量的地址 |
* | 指针运算符*,指向一个变量 |
运算符的优先级
类别 | 运算符 | 结合性 |
后缀 | () [] -> . ++ -- | 从左到右 |
一元 | + - ! ~ ++ -- (type)* & sizeof | 从右到左 |
乘除 | * / % | 从左到右 |
加减 | + - | 从左到右 |
移位 | << >> | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
位与AND | & | 从左到右 |
位异或XOR | ^ | 从左到右 |
位或OR | | | 从左到右 |
逻辑与AND | && | 从左到右 |
逻辑或OR | || | 从左到右 |
条件 | ? : | 从右到右 |
赋值 | = += -= *= /= %= >>= <<= &= ^= |= | 从右到左 |
逗号 | , | 从左到右 |