一、分类:

1、整数:short、int、long、longlong、char

2、浮点数:float、double、long double

3、逻辑:bool

4、指针

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语言_02

输出则为c=255 i=255

 (2)、如果一个字面常量想表达自己为unsigned,可以在后面加u或U

8进制和16进制


一个以0开始的数字字面量是8进制

一个以0x开始的数字字面量是16进制

数据类型_C语言_03

%o用于8进制,%x用于16进制(同样scanf也可以用)

数据类型_进制_04

三、浮点类型(无特殊需要用double)

double表达的范围比float要更大一些

(1)   输入    输出

float    %f       %f %e  (%e输出的是科学计数法 +004---->乘10的四次方  0.000001-->1e-6)

double %lf      %f %e

数据类型_C语言_05

数据类型_强制转换_06

(2).df% 表示精度

在%与f之间加.d可以指定输出小数点后几位,但是这样的输出做的是四舍五入(看最接近的一位与五的关系)

数据类型_强制转换_07

(3) 超出范围的浮点数(整数不能表示无穷,浮点可以)

printf输出inf表示超过范围的浮点数:±∞

printf输出nan表示不存在的浮点数

四、bool

(1)使用前:使用bool类型前应加头文件:#include<stdbool.h>之后就能使用bool ture false

bool只有ture和false,0是false,其他情况都是ture

数据类型_浮点数_08

(2)使用范围:可用于逻辑表达式,也就是”或“ ”非“ ”与“之类的逻辑运算和大于小于之类的关系运算,逻辑表达式结果为真或假

五、字符类型

(1)char是一种整数,也是一种特殊的类型:字符

         用单引号表示字符字面量:‘a’,‘1’ (单个字符)

         ‘’也是一个字符

(2)输出 输入

printf和scanf里用%c来输出输入字符

数据类型_c++_09

数据类型_c++_10

(3)'1'与1的关系

显然'1'与1不相等,‘1’字符用ASCII值表示

数据类型_强制转换_11

(4)字符计算

一个字符加一个数字得到ASCII码表中那个数之后的字符

数据类型_强制转换_12

两个字符相减,得到他们在表中的距离

数据类型_C语言_13

六、转换类型

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  

注意:强制转换时的安全性,小的变量不总能表达大的变量

强制转换不是将原先值置换,而是换算了一遍

七、逃逸字符

数据类型_浮点数_14

(1)定义:逃逸字符表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟着另外一个字符,这两个字符组合起来,组成一个字符

(2)\b:回退一格:让下一个输出回到上一个位置,降上一个位置的东西覆盖了

数据类型_进制_15

(3)\t:每行固定位置;一个\t使得输出从下一个制表位开始;用\t才能使得上下两行对齐

数据类型_C语言_16

(4)\n和\r的区别:

\n回车,回到当前行的首行,而不会换到下一行,如果接着输出,本行以前的内容会被逐一覆盖

数据类型_c++_17

\n换行,换到当前位置的下一行,而不会回到行首

数据类型_进制_18

(5)\"  \'  \\ 则是输出“ ’ 、本身