一、数据类型
数据类型 | 基本类型 | 整形 | 整形(int)%d |
短整形(short) | |||
长整形(long) | |||
字符型 | (char)%c | ||
实型 | 单精度型(float)%f | ||
双精度型(double)%lf | |||
枚举类型 | (enmu) | ||
构造类型 | 数组类型 | / | |
结构体类型 | (struct) | ||
共用体类型 | (union) | ||
指针类型 | (*) | ||
空类型 | (void) |
二、标识符、常量和变量
2.1 32个关键字
auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
case:开关语句分支
enum :声明枚举类型
register:声明积存器变量
typedef:用以给数据类型取别名(当然还有其他作用)
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明(也可以看做是引用变量)
return :子程序返回语句(可以带参数,也看不带参数)
union:声明联合数据类型
const :声明只读变量
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环
for:一种循环语句(可意会不可言传)
signed:生命有符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
default:开关语句中的“其他”分支
goto:无条件跳转语句
sizeof:计算数据类型长度
volatile:说明变量在程序执行中可被隐含地改变
do :循环语句的循环体
while :循环语句的循环条件
static :声明静态变量
if:条件语句
2.2 9种控制语句
goto语句:无条件转向;
if语句:判断语句;
while循环语句;
do-while语句:先执行循环体,然后判断循环条件是否成立. 之后继续循环;
for语句:循环,可替代while语句; 只是用法不同;
break语句跳出本层的循环;(只调处包含此语句的循环)
continue语句:继续(一般放到循环语句里,不在执行它下面的语句,直接跳到判断语句例:for语句,就直接跳到第二个分号处,while语句,就直接跳到while()的括号里;
switch语句:多相选择;
return语句:返回;
2.3 转义符
转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
\" 双引号字符 034
\0 空字符(NULL) 000
\ddd 任意字符 三位八进制
\xhh 任意字符 二位十六进制
2.4 ASCII表(1~128)
Bin Dec Hex 缩写/字符 解释
0000 0000 0 00 NUL (null) 空字符
0000 0001 1 01 SOH (start of handing) 标题开始
0000 0010 2 02 STX (start of text) 正文开始
0000 0011 3 03 ETX (end of text) 正文结束
0000 0100 4 04 EOT (end of transmission) 传输结束
0000 0101 5 05 ENQ (enquiry) 请求
0000 0110 6 06 ACK (acknowledge) 收到通知
0000 0111 7 07 BEL (bell) 响铃
0000 1000 8 08 BS (backspace) 退格
0000 1001 9 09 HT (horizontal tab) 水平制表符
0000 1010 10 0A LF (NL line feed, new line) 换行键
0000 1011 11 0B VT (vertical tab) 垂直制表符
0000 1100 12 0C FF (NP form feed, new page) 换页键
0000 1101 13 0D CR (carriage return) 回车键
0000 1110 14 0E SO (shift out) 不用切换
0000 1111 15 0F SI (shift in) 启用切换
0001 0000 16 10 DLE (data link escape) 数据链路转义
0001 0001 17 11 DC1 (device control 1) 设备控制1
0001 0010 18 12 DC2 (device control 2) 设备控制2
0001 0011 19 13 DC3 (device control 3) 设备控制3
0001 0100 20 14 DC4 (device control 4) 设备控制4
0001 0101 21 15 NAK (negative acknowledge) 拒绝接收
0001 0110 22 16 SYN (synchronous idle) 同步空闲
0001 0111 23 17 ETB (end of trans. block) 传输块结束
0001 1000 24 18 CAN (cancel) 取消/作废
0001 1001 25 19 EM (end of medium) 介质中断
0001 1010 26 1A SUB (substitute) 替补
0001 1011 27 1B ESC (escape) 溢出
0001 1100 28 1C FS (file separator) 文件分割符
0001 1101 29 1D GS (group separator) 分组符
0001 1110 30 1E RS (record separator) 记录分离符
0001 1111 31 1F US (unit separator) 单元分隔符
0010 0000 32 20 空格
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?
0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 45 E
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 I
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F O
0101 0000 80 50 P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 S
0101 0100 84 54 T
0101 0101 85 55 U
0101 0110 86 56 V
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C \
0101 1101 93 5D ]
0101 1110 94 5E ^
0101 1111 95 5F _
0110 0000 96 60 `
0110 0001 97 61 a
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 e
0110 0110 102 66 f
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 i
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C l
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F o
0111 0000 112 70 p
0111 0001 113 71 q
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 t
0111 0101 117 75 u
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~
0111 1111 127 7F DEL (delete) 删除
2.5 键盘常用ASCII码(十进制)
ESC键 VK_ESCAPE (27)
回车键: VK_RETURN (13)
TAB键: VK_TAB (9)
Caps Lock键: VK_CAPITAL (20)
Shift键: VK_SHIFT (16)
Ctrl键: VK_CONTROL (17)
Alt键: VK_MENU (18)
空格键: VK_SPACE (32)
退格键: VK_BACK (8)
左徽标键: VK_LWIN (91)
右徽标键: VK_LWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键: VK_INSERT (45)
Home键: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End键: VK_END (35)
Delete键: VK_DELETE (46)
方向键(←): VK_LEFT (37)
方向键(↑): VK_UP (38)
方向键(→): VK_RIGHT (39)
方向键(↓): VK_DOWN (40)
F1键: VK_F1 (112)
F2键: VK_F2 (113)
F3键: VK_F3 (114)
F4键: VK_F4 (115)
F5键: VK_F5 (116)
F6键: VK_F6 (117)
F7键: VK_F7 (118)
F8键: VK_F8 (119)
F9键: VK_F9 (120)
F10键: VK_F10 (121)
F11键: VK_F11 (122)
F12键: VK_F12 (123)
Num Lock键: VK_NUMLOCK (144)
小键盘0: VK_NUMPAD0 (96)
小键盘1: VK_NUMPAD1 (97)
小键盘2: VK_NUMPAD2 (98)
小键盘3: VK_NUMPAD3 (99)
小键盘4: VK_NUMPAD4 (100)
小键盘5: VK_NUMPAD5 (101)
小键盘6: VK_NUMPAD6 (102)
小键盘7: VK_NUMPAD7 (103)
小键盘8: VK_NUMPAD8 (104)
小键盘9: VK_NUMPAD9 (105)
小键盘.: VK_DECIMAL (110)
小键盘*: VK_MULTIPLY (106)
小键盘+: VK_MULTIPLY (107)
小键盘-: VK_SUBTRACT (109)
小键盘/: VK_DIVIDE (111)
Pause Break键: VK_PAUSE (19)
Scroll Lock键: VK_SCROLL (145)
以上部分属于资料汇总,来自不同的资源网站。
至于变量和常量如字面意思一样,这里不作札记。
三、运算符和表达式
3.1 运算符表
算术运算符 | ||
+ | 加 | 1+1=2 |
- | 减 | 1-1=0 |
* | 乘 | 1*2=2 |
/ | 除 | 2/1=2 |
% | 求余 | 5%3=2 |
++ | 自增1 | 1+1++=2;++1+1=3; |
-- | 自减1 | 1+1--=2;--1+1=1; |
关系运算符 | ||
> | 大于符号 | 用于比较判别 |
>= | 大于等于符号 | 用于比较判别 |
< | 小于符号 | 用于比较判别 |
<= | 小于等于符号 | 用于比较判别 |
== | 等于符号 | 用于比较判别 |
!= | 不等于符号 | 用于比较判别 |
逻辑运算符 | ||
! | 非 | !1=0 |
& | 与 | 1&0=0 |
|| | 或 | 1||0=1 |
位运算符 | ||
《 | 左移 | 乘2 |
》 | 右移 | 除2 |
~ | 取反 | ~1=0 |
| | 按位或 | 只有两个0才为0 |
^ | 异或 | A^b^A=b |
& | 按位与 | 两个1才为1 |
赋值类运算符 | ||
= | 等于 | A=1; |
自反赋值运算符 | / | / |
条件运算符 | ||
?: | 条件运算 | C=a>b?a:b;(C取a,b中大的) |
其他 | ||
求储存单元字节数运算符 | Sizeof(int) | / |
类型转换运算符 | (int)a | / |
结构体成员运算符 | . -> | / |
下标运算符 | [] | / |
3.2 优先级与结合性
(注:来自资料汇总)
优先级【高到低】:
第一级:
圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】
第二级:
逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】
第三级:乘法运算符【*】、除法运算符【/】、取余运算符【%】
第四级:加法运算符【+】、减法运算符【-】
第五级:左移动运算符【<<】、右移动运算符【>>】
第六级:关系运算符【< > <= >= 】
第七级:等于运算符【==】、不等于运算符【!=】
第八级:按位与运算符【&】
第九级:按位异或运算符【^】
第十级:按位或运算符【|】
第十一级:逻辑与运算符【&&】
第十二级:逻辑或运算符【||】
第十三级:条件运算符【?:】
第十四级:赋值运算符【= += -= *= /= %= >>= <<.= &= |= ^=】
第十五级:逗号运算符【,】
说明:
①G1不要求运算对象的个数,G2是单目运算符,G13条件运算符是三目运算符,其他都是双目运算符。
②G2、G13条件运算符、G14赋值运算符是自右向左的【也就是右结合性】,其他都是自左向右【左结合性】
归纳各类运算符【高到底】:
初等运算符【()、[]、->、.】 G1
单目运算符 G2
算术运算符(先乘除【取余】,后加减) G3,4
位运算符【<< >>】 G5
关系运算符 G6,7
位运算符【递减& ^ |】 G7,8,9
逻辑运算符(不包括!) G11,12
条件运算符 G13
赋值运算符 G14
逗号运算符 G15