数据类型的作用:编译器预算对象(变量)分配的内存空间大小。
2.1.3 常量常量:
- 在程序运行过程中,其值不能被改变的量
- 常量一般出现在表达式或赋值语句中
| 整型常量 | 100,200,-100,0 |
| 实型常量 | 3.14 , 0.125,-3.123 |
| 字符型常量 | ‘a’,‘b’,‘1’,‘n’ |
| 字符串常量 | “a”,“ab”,“12356” |
1) 变量
变量:
- 在程序运行过程中,其值可以改变
- 变量在使用前必须先定义,定义变量前必须有相应的数据类型
标识符命名规则:
- 标识符不能是关键字
- 标识符只能由字母、数字、下划线组成
- 第一个字符必须为字母或下划线
- 标识符中字母区分大小写
变量特点:
- 变量在编译时为其分配相应的内存空间
- 可以通过其名字和地址访问相应内存
2) 声明和定义区别
- 声明变量不需要建立存储空间;
- 定义变量需要建立存储空间。
一般的情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。
2.1.5 使用示例#include2.2整型:int#define MAX 10 //声明了一个常量,名字叫MAX,值是10,常量的值一旦初始化不可改 int main() { int a; //定义了一个变量,其类型为int,名字叫a const int b = 10; //定义一个const常量,名为叫b,值为10 //b = 11; //err,常量的值不能改变 //MAX = 100; //err,常量的值不能改变 a = MAX; //将abc的值设置为MAX的值 a = 123; printf("%dn", a); //打印变量a的值 return 0; }
2.2.1 整型变量的定义和输出
| 打印格式 | 含义 |
| %d | 输出一个有符号的10进制int类型 |
| %o | 输出8进制的int类型 |
| %x | 输出16进制的int类型,字母以小写输出 |
| %X | 输出16进制的int类型,字母以大写输出 |
| %u | 输出一个10进制的无符号数 |
#include2.2.3 short、int、long、long long所占字节数int main() { int a; printf("请输入a的值:"); scanf("%d", &a); //输入a的值 printf("a = %dn", a); //打印a的值 return 0; }
| 数据类型 | 占用空间 |
| short(短整型) | 2字节 |
| int(整型) | 4字节 |
| long(长整形) | Windows为4字节,Linux为4字节(32位),8字节(64位) |
| long long(长长整形) | 8字节 |
| 打印格式 | 含义 |
| %d | 输出int类型 |
| %ld | 输出long类型 |
| %lld | 输出long long类型 |
1) 有符号数
有符号数是最高位为符号位,0代表正数,1代表负数。
2) 无符号数
无符号数最高位不是符号位,而就是数的一部分,无符号数是非负数。
3) 有符号和无符号整型取值范围
| 数据类型 | 占用空间 | 取值范围 |
| short | 2字节 | -32768 到 32767 (-215 ~ 215-1) |
| int | 4字节 | -2147483648 到 2147483647 (-231 ~ 231-1) |
| long | 4字节 | -2147483648 到 2147483647 (-231 ~ 231-1) |
| unsigned short | 2字节 | 0 到 65535 (0 ~ 216-1) |
| unsigned int | 4字节 | 0 到 4294967295 (0 ~ 232-1) |
| unsigned long | 4字节 | 0 到 4294967295 (0 ~ 232-1) |
- sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位为字节
- sizeof的返回值为size_t
- size_t类型在32位操作系统下是unsigned int,是一个无符号的整数
#include2.4字符型:char 2.4.1 字符变量的定义和输出int main() { int a; int b = sizeof(a); //sizeof得到指定值占用内存的大小,单位:字节 printf("b = %dn", b); return 0; }
字符型变量用于存储一个单一字符,在 C 语言中用 char 表示,其中每个字符变量都会占用 1 个字节。在给字符型变量赋值时,需要用一对英文半角格式的单引号(' ')把字符括起来。字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。char的本质就是一个1字节大小的整型。
#includeint main() { char A = 'A'; char a = 'a'; printf("a = %dn", a); //97 printf("A = %dn", A); //65 printf("A = %cn", 'a' - 32); //小写a转大写A printf("a = %cn", 'A' + 32); //大写A转小写a return 0; }
2.4.2 字符变量的输入
#include
int main()
{
char ch;
scanf("%c", &ch);
printf("ch = %cn", ch); //打印ch的字符
return 0;
}
2.4.2 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 | < | 92 | / | 124 | | |
| 29 | GS | 61 | = | 93 | ] | 125 | } |
| 30 | RS | 62 | > | 94 | ^ | 126 | ` |
| 31 | US | 63 | ? | 95 | _ | 127 | DEL |
ASCII 码大致由以下两部分组成:
- ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
- ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。数字 127 代表 Del 命令。
| 转义字符 | 含义 | ASCII码值(十进制) |
| n | 换行(LF) ,将当前位置移到下一行开头 | 010 |
| \ | 代表一个反斜线字符"" | 092 |
| ' | 代表一个单引号(撇号)字符 | 039 |
| " | 代表一个双引号字符 | 034 |
| ? | 代表一个问号 | 063 |


