C 数据类型

基本类型 整型类型 基本整型 短整型 长整型 双长整型 字符型 浮点类型 单精度浮点型 双精度浮点型 复数浮点型 枚举类型 空类型 派生类型 指针类型 数组类型 结构体类型 共用体类型 函数类型 --- 基本整型(int型):16位软件2个,32位软件4个字节 短整型(short int):32位软件占2个字节 长整型(long int):32位软件占4个字节 双长整型(long long int):8个字节,C99新增的

C 语言允许使用的数据类型

  • 基本类型
  • 枚举类型
  • 空类型
  • 派生类型
    • 指针类型
    • 数组类型
    • 结构体类型
    • 共用体类型
    • 函数类型

整型数据

分类

  • 基本整型(int型):16位软件2个,32位软件4个字节
  • 短整型(short int):32位软件占2个字节
  • 长整型(long int):32位软件占4个字节
  • 双长整型(long long int):8个字节,C99新增的

整型变量的符号属性

扩充 有符号 signed 无符号 unsighed

有符号基本整型   (signed) int; 或  signed (int); 无符号基本整型   unsigned (int); 有符号短整型     (signed] short (int); 无符号短整型     unsigned short (int); 有符号长整型     (signed) long (int); 无符号长整型     unsigned long (int) 有符号双长整型  (signed) long long (int); 无符号双长整型  unsigned long long (int)

变量类型名 变量类型 所占字节数 数的范围
基本整型 [signed] int 4 -2147483648 ∼ 2147483647
短整型 [signed] short [int] 2 -32768 ∼ 32767
长整型 [signed] long [int] 4 -2147483648 ∼ 2147483647
无符号基本型 unsigned [int] 4 0 ∼ 4294967295
无符号短整型 unsigned short [int] 2 0 ∼ 65535
无符号长整型 unsigned long [int] 4 0 ∼ 4294967295

TIP: 💡 小贴士:

  • 方括号 [] 的含义:在 C 语言语法中,方括号内的部分是可以省略的。例如 signed int 直接写成 int 也是一样的。
  • 关于 long 的大小:表格中显示 long 为 4 字节(通常在 Windows 32/64 位系统下),但在 Linux 64 位系统下,long 通常会占据 8 字节
  • 范围的计算
    • 有符号 4 字节(32位)的范围是:-2^31 ∼ 2^31-1
    • 无符号 4 字节(32位)的范围是:0 ∼ 2^32-1

电脑以补码的形式存放数据

字符型数据

字符是按其代码(即ASCII码,整数)形式存储的

C99把字符型数据作为整数类型的一种

ASCII码,0到127

char型数据, -128到127

ATTENTION 字符型char 数据,通常是一个字节(八位), 这是一个整数(int)类型。

ASCII码表

计算机采用ASCII字符集:

Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex Char
0 00 NUL 32 20 SPC 64 40 @ 96 60 `
1 01 SOH 33 21 ! 65 41 A 97 61 a
2 02 STX 34 22 66 42 B 98 62 b
3 03 ETX 35 23 # 67 43 C 99 63 c
4 04 EOT 36 24 $ 68 44 D 100 64 d
5 05 ENQ 37 25 % 69 45 E 101 65 e
6 06 ACK 38 26 & 70 46 F 102 66 f
7 07 BEL 39 27 71 47 G 103 67 g
8 08 BS 40 28 ( 72 48 H 104 68 h
9 09 HT 41 29 ) 73 49 I 105 69 i
10 0A LF 42 2A * 74 4A J 106 6A j
11 0B VT 43 2B + 75 4B K 107 6B k
12 0C FF 44 2C , 76 4C L 108 6C l
13 0D CR 45 2D - 77 4D M 109 6D m
14 0E SO 46 2E . 78 4E N 110 6E n
15 0F SI 47 2F / 79 4F O 111 6F o
16 10 DLE 48 30 0 80 50 P 112 70 p
17 11 DC1 49 31 1 81 51 Q 113 71 q
18 12 DC2 50 32 2 82 52 R 114 72 r
19 13 DC3 51 33 3 83 53 S 115 73 s
20 14 DC4 52 34 4 84 54 T 116 74 t
21 15 NAK 53 35 5 85 55 U 117 75 u
22 16 SYN 54 36 6 86 56 V 118 76 v
23 17 ETB 55 37 7 87 57 W 119 77 w
24 18 CAN 56 38 8 88 58 X 120 78 x
25 19 EM 57 39 9 89 59 Y 121 79 y
26 1A SUB 58 3A : 90 5A Z 122 7A z
27 1B ESC 59 3B ; 91 5B [ 123 7B {
28 1C FS 60 3C < 92 5C \ 124 7C |
29 1D GS 61 3D = 93 5D ] 125 7D }
30 1E RS 62 3E > 94 5E ^ 126 7E ~
31 1F US 63 3F ? 95 5F _ 127 7F DEL

转义字符

详见:转义字符

字符变量

char来定义字符变量

EXAMPLE

char c = '?';  //系统把"?"的ASCII代码63赋给变量c
printf("%d %c",c,c);
//输出的结果是:63 ?

浮点型数据

float型(单精度浮点型)

编译系统为float型变量分配4个字节 6位有效数字  范围:10E±37

double型(双精度浮点型)

编译系统为double型变量分配8个字节 15位有效数字  范围10E±308

long double(长双精度)型

布尔型_Bool

1 代表 是(True) 0 代表 否(False)

相关笔记