C语言-数据类型


数据类型

K&R给出了7个数据类型关键字;C90新增2个;C99有添加3个

1
2
3
4
5
6
7
8
K&R        C90       C99
int signed _Bool
long void _Complex(复数)
short %hd _Imaginary(虚数)
unsigned
char
float
double

short, long, unsigned, signed是整数类型的变式

整型

之所以存在这么多种整型类型的原因是,整型可以有正负号和取值范围,再者满足不同情况选择不同类型

以二进制数存储

int(正负都可以), long, long long, unsigned(非负), signed(可以和有符号的其它类型搭用)

long的实际数据后要加L,unsigned long要加UL

1
2
3
4
5
int a;
long b; %ld
long long b;
unsigned c; //用%u表示
signed short d;

int类型溢出时,会从int能表示的最小负值开始重新赋值;unsigned无符号类型溢出从0开始

由于存储unsigned时没有符号位,所以unsigned要比int所能表示的范围大

有符号

1
2
3
4
5
char
short
int
long
long long

无符号

1
2
3
4
5
unsigned char
unsigned short
unsigned int
unsigned long
unsigned long long

浮点数

拆分为小数和指数部分,分别存储

1
2
float a = 3200.0  // 0.32E4
printf("%f %e") // %f用十进制形式打印; %e用指数形式打印

字符char

用一个字节存储

用单引号;%c

1
2
char a = 'C';
printf("%c %d", a, a);

二进制,十进制,八进制,十六进制

十六进制:0x,0X,%x

八进制:0,%o

需要显示前缀用:%#x,%#o

1
2
3
int a = 100;
printf("%d %x %o", a, a, a ); // 100 144 64
printf("%d %#x %#o", a, a, a ); // 100 0144 0x64

本文标题:C语言-数据类型

文章作者:TTYONG

发布时间:2020年08月24日 - 15:08

最后更新:2020年10月15日 - 16:10

原始链接:http://tianyong.fun/C%E8%AF%AD%E8%A8%80-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%