1. 数据类型关键字(12个)
C语言中的数据类型主要有下面几种。实际上,数据类型可以理解为固定大小内存块的别名,给变量指定类型就是告诉编译器给该变量分配多大的内存空间,而变量相当于是内存块的门牌号。
(1) 声明和定义的区别
定义可以看作是声明的一个特例,并非所有的声明都是定义。可以通过是否分配内存来区分定义和声明,定义会建立存储空间,而声名不会建立存储空间。
int function()
{
//定义
int val; //定义一个变量val,此时会给val分配内存,由数据类型int决定分配多大内存,int为4字节。
val = 10; //可以为val赋值。
//声明
extern int val_2; //声明变量val_2,不会建立内存。
//val_2 = 10; //error: 声明不会建立内存,没有内存空间所以无法赋值。
return 0;
}
- 定义:定义是指创建一个对象并为这个对象分配一块内存,同时将变量名和这个内存块进行绑定。但是,同一个变量在同一作用域只能定义一次,如果多次定义的话,编译器会提示重定义错误。
- 声明:
- 告诉编译器,某个名称已经被预定了,其他对象/内存块不能再使用这个名称。
- 告诉编译器,某个名称已经绑定好内存块了,该对象是在其他位置定义的,这里用到本名称时不要报错。
(2) 数据类型关键字
char:声明字符型变量。
char类型用于存储一个单一字符,即1字节存储单元。在给char类型变量赋值时需要把值用英文半角单引号''引起来,存储时并非真正把该字符放到存储空间,而是把该字符对应的ASCII码存放到存储单元中。(也可以把char类型看作是1字节整形)。
ASCII对照表如下
ASCII值 | 控制字符 | ASCII值 | 字符 | ASCII值 | 字符 | ASCII值 | 字符 |
---|---|---|---|---|---|---|---|
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | " | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 |
|