c语言存储类型关键字作用,C语言, 存储类型关键字?

1、C语言的数据类型分类

C语言的数据类型分类:

基本数据类型:

整型int

字符型char

浮点型:

单精度浮点型float

双精度浮点型double

构造数据类型:

数组(如int a[])

结构体struct

联合体(或叫共用体)union

枚举类型enum

指针类型(如int *p)

空类型void

2、int,unsigned int,short,long

1)整型int:

大小:16位2字节 或 32位4字节(取决于编译器)

存储格式:0~30位是数据位,第31位是符号位,用0代表正数,1代表负数。负数用补码存储。

存储范围:-2^31 ~ 2^31-1

打印格式:%d(十进制)、%o(八进制)、%x或%X(十六进制)

说明:

int类型用于存放整数,占16或32位(取决于编译器),2或4字节。其中第31位为符号位(符号位0代表正数,1代表负数),后面几位为数据位

负数在内存中是以补码的形式存储的。

(补码:按位取反,末位+1)

(用补码存储,正0和负0相同)

(对一个整数求补码再求补码,等于自身)

有十进制,八进制,十六进制三种存储方法

八进制输入输出格式化使用%o。八进制数以0开头,如0666

十六进制输入输出格式化使用%x或%X。十六进制数以0x开头,如0x12345678

2)无符号整型unsigned int:

大小:同int型

存储格式:0~31位都是数据位,无符号位

存储范围:0 ~ 2^32-1

打印格式:%u

说明:

与int型基本相同,区别是int型的符号位不再是符号位而也作为数据位,因此无符号整型数据比整型数据存储范围大2倍,不过无法存储负数

适用于只有正数的情况

unsigned关键字不仅仅可以修饰int类型,还可修饰short long float等类型。

注意:unsigned关键字修饰的变量无法接收负数。

无符号数的输入输出格式控制是%u

3)短整型short:

大小:16位2字节

存储格式:0~14位为数据位,第15位为符号位,用0代表正数,1代表负数

存储范围:-32768 ~ 32767

打印格式:%h

说明:

short类型与int类型类似,只不过是16位,2字节。第15位为符号位,后面几位为数据位

short类型适用于存储不太大的数据,节省内存空间。

short类型的输入输出格式控制是%h

4)长整型long:

大小:32位4字节

存储格式:同32位int类型

存储范围:同32位int类型

打印格式:%ld

说明:

在过去的16位编译器中,int型是16位,所以long类型是32位。

不过在现代的32位编译器中,int型与long类型已无本质区别。

如果需要考虑程序跨平台移植(如16位编译器32位编译器)需要谨慎选择使用int还是long

3、char类型:

大小:8位1字节

存储格式:0~6位都为数据位(128) 或 0~7位都为数据位(256,扩展后的ASCII表)

存储范围:0 ~ 255

打印格式:%c

说明:

----------------------------ASCII表与转义字符----------------------------------------

在计算机的编码中,字符是使用ASCII表进行编码的。每一个字符都有一个对应的数字,例如:

'A'--->65

'a'--->97

'0'--->48 等

除了常见的数字、字母、符号(如+-*/%等)外,ASCII表还存储了一些看不见的控制字符,如:

空或'\0'(字符串结束标志)--->0

空格--->32

任意的ASCII表内字符都可以用'\'+数字(八进制)的方式来表示,有些还可以用'\'+字符来表示,称之为转义字符。转义字符即在'\'后的字符不代表了它本来的含义。

常见的转义字符:

\a:蜂鸣器

\b:backspace退格键

\n:换行,光标移动至下行行首

\r:光标移动至本行行首

\f:换页

\t:tab水平制表符

\\:输出\

\':输出'

\":输出"

\?:输出?

\0:NULL字符串结束标志

----------------------------ASCII表与转义字符end-------------------------------------

4、float与double

----------------浮点数的存储-------------------------

浮点数分为float类型(32位)和double类型(64位)

其中一位是符号位,代表整个数的正负

一位是指数符,代表指数部分的正负

尾数表示0.XXXXXXX(浮点数的有效数字),但不存0和.

指数表示指数的有效数字

因此,尾数代表了浮点数的精度,指数代表了浮点数的范围

浮点数存储的小数不是实际值,只能是近似值(如1/3,只会存储0.333333)

----------------浮点数的存储end----------------------

1)float类型:

单精度浮点型

大小:32位4字节

存储格式:符号位(1位)+尾数(23位)+指数(8位,含1位符号位)

精度:小数部分最多有效7位,有效6位(2^23=8388608,所以是7位)

存储范围:-3.40E+38 ~ +3.40E+38(即-2^128 ~ 2^128)

打印格式:%f(十进制计数法),%e(指数计数法)

2)double类型:

双精度浮点型

大小:64位8字节

存储格式:符号位(1位)+尾数52(位)+指数(11位,含1位符号位)

精度:小数部分最多有效16位,有效15位(2^52=4503599627370496,所以是16位)

存储范围:-1.79E+308 ~ +1.79E+308(即-2^1024 ~ 2^1024)

打印格式:同float类型

注意:double类型是8字节而float类型是4字节,因此double型比float型的数据更加精确,但计算速度会更慢。

3)long double类型:

大小:96位12字节

存储格式:同double类型

精度:同double类型

存储范围:同double类型

打印格式:%lf,%le

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值