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

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


噜噜哒
浏览 704回答 3
3回答

FFIVE

1、C语言的数据类型分类C语言的数据类型分类:基本数据类型:整型int字符型char浮点型:单精度浮点型float双精度浮点型double构造数据类型:数组(如int a[])结构体struct联合体(或叫共用体)union枚举类型enum指针类型(如int *p)空类型void2、int,unsigned int,short,long1)整型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开头,如0x123456782)无符号整型unsigned int:大小:同int型存储格式:0~31位都是数据位,无符号位存储范围:0 ~ 2^32-1打印格式:%u说明:与int型基本相同,区别是int型的符号位不再是符号位而也作为数据位,因此无符号整型数据比整型数据存储范围大2倍,不过无法存储负数适用于只有正数的情况unsigned关键字不仅仅可以修饰int类型,还可修饰short long float等类型。注意:unsigned关键字修饰的变量无法接收负数。无符号数的输入输出格式控制是%u3)短整型short:大小:16位2字节存储格式:0~14位为数据位,第15位为符号位,用0代表正数,1代表负数存储范围:-32768 ~ 32767打印格式:%h说明:short类型与int类型类似,只不过是16位,2字节。第15位为符号位,后面几位为数据位short类型适用于存储不太大的数据,节省内存空间。short类型的输入输出格式控制是%h4)长整型long:大小:32位4字节存储格式:同32位int类型存储范围:同32位int类型打印格式:%ld说明:在过去的16位编译器中,int型是16位,所以long类型是32位。不过在现代的32位编译器中,int型与long类型已无本质区别。如果需要考虑程序跨平台移植(如16位编译器<--->32位编译器)需要谨慎选择使用int还是long3、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

守着一只汪

存储类型关键字有如下4个:1 auto :声明自动变量。此项为缺省值。auto int a;和int a;是完全相同的。所以在编程中一般看不到auto的使用。2 extern:声明外部变量。功能为扩展全局变量的作用域。3 register:声明寄存器变量。声明后,变量存储于CPU寄存器中。是最快的C语言变量。但是需要注意的是,CPU寄存器有限的,所以并不是所有声明为register的变量都会存在寄存器中。使用register更像是一个申请,具体是否可以存在寄存器还要看系统情况。 该项尽量少用。4 static :声明静态变量。有静态局部变量和静态全局变量两种。用于局部变量时,将变量声明周期延长到整个程序运行。用于全局变量时,将全局变量作用域限定在本文件。

aluckdog

存储类型关键字(4个):(1).auto :声明自动变量 一般不使用(2).extern:声明变量是在其他文件正声明(也可以看做是引用变量)(3).register:声明积存器变量(4). static :声明静态变量
打开App,查看更多内容
随时随地看视频慕课网APP