数据类型_c语言的技术博客_51CTO博客
source link: https://blog.51cto.com/u_15652430/5591322
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
数据类型_c语言的技术博客_51CTO博客
一、分类:
1、整数:short、int、long、longlong、char
2、浮点数:float、double、long double
3、逻辑:bool
5、自定义
(1)输出格式:int(%d)、iong(%ld)、double(%lf)
(2)所表达数的范围:char<short<int<float<double
char 1字节:-128~127 short 2字节:-32768~32767
int:取决于编译器 long 四字节二 long long 8字节
(3)内存中所占据的大小:1字节到16字节
sizeof 是一个运算符,给出某个类型或变量在内存中所占的字节数(sizeof(int)、sizeof(i))
(4)内存中的表达形式:二进制(补码)、编码
二、整数
unsigned
(1)、unsigned,是为了纯做二进制运算,主要是为了移位,但也能扩展数能表达范围(%u)
加上unsignde表示 这个整数不以补码的形势存在,这个整数没有负数部分只有零和正数,使得这个类型所表达的数在正数部分扩大一倍,但是不能表达负数了
char :-128~127 unsigned char:0~255
输出则为c=255 i=255
(2)、如果一个字面常量想表达自己为unsigned,可以在后面加u或U
8进制和16进制
一个以0开始的数字字面量是8进制
一个以0x开始的数字字面量是16进制
%o用于8进制,%x用于16进制(同样scanf也可以用)
三、浮点类型(无特殊需要用double)
double表达的范围比float要更大一些
(1) 输入 输出
float %f %f %e (%e输出的是科学计数法 +004---->乘10的四次方 0.000001-->1e-6)
double %lf %f %e
(2).df% 表示精度
在%与f之间加.d可以指定输出小数点后几位,但是这样的输出做的是四舍五入(看最接近的一位与五的关系)
(3) 超出范围的浮点数(整数不能表示无穷,浮点可以)
printf输出inf表示超过范围的浮点数:±∞
printf输出nan表示不存在的浮点数
四、bool
(1)使用前:使用bool类型前应加头文件:#include<stdbool.h>,之后就能使用bool ture false
bool只有ture和false,0是false,其他情况都是ture
(2)使用范围:可用于逻辑表达式,也就是”或“ ”非“ ”与“之类的逻辑运算和大于小于之类的关系运算,逻辑表达式结果为真或假
五、字符类型
(1)char是一种整数,也是一种特殊的类型:字符
用单引号表示字符字面量:‘a’,‘1’ (单个字符)
‘’也是一个字符
(2)输出 输入
printf和scanf里用%c来输出输入字符
(3)'1'与1的关系
显然'1'与1不相等,‘1’字符用ASCII值表示
(4)字符计算
一个字符加一个数字得到ASCII码表中那个数之后的字符
两个字符相减,得到他们在表中的距离
六、转换类型
1、自动转换类型
(1)当运算两遍字符类型不同时
当运算符的两遍出现不一致的类型的时候,会自动转换成较大的类型(大指的是范围大)
char<short<int<long<long long
int<float<double
(2)输入 输出
printf:任何小于int的类型会被转换成int;float会被转换为double
scanf:scanf不会转换,short--->%hd int--->%d long long--->%ld
但是不能以整数的形式输入一个char,只能先输入一个整数再把整数给char
2、强制类型转换:要把一个量强制转换成另一个类型(通常是较小的类型)
(1)格式:(类型)值 eg:(int)10.2
注意:强制转换时的安全性,小的变量不总能表达大的变量
强制转换不是将原先值置换,而是换算了一遍
七、逃逸字符
(1)定义:逃逸字符表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟着另外一个字符,这两个字符组合起来,组成一个字符
(2)\b:回退一格:让下一个输出回到上一个位置,降上一个位置的东西覆盖了
(3)\t:每行固定位置;一个\t使得输出从下一个制表位开始;用\t才能使得上下两行对齐
(4)\n和\r的区别:
\n回车,回到当前行的首行,而不会换到下一行,如果接着输出,本行以前的内容会被逐一覆盖
\n换行,换到当前位置的下一行,而不会回到行首
(5)\" \' \\ 则是输出“ ’ 、本身
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK