1. C语言中的数据类型①基本数据类型整数类型字符类型浮点类型缺省类型空类型 void泊尔类型c②构造数据类型③指针类型2. 整数类型①整数类型的分类有符号整形可以表示正数也可以表示负数最高位符号位 0 正数 1负数其它位数据位无符号整形只能表示正数064位ubuntu系统下short 短整型内存中2字节unsigned short 无符号短整型最大值1111 1111 1111 1111 —— 2^16-165535最小值0000 0000 0000 0000—— 0shortsigned short有符号整型最大值0111 1111 1111 1111 —— 2^15-1 32767最小值1000 0000 0000 0000—— -32768int 整型内存中4字节unsigned int 无符号整型最大值1111 1111 1111 1111 1111 1111 1111 1111 --》2^32-1 42亿最小值0000 0000 0000 0000 0000 0000 0000 0000 --》0intsigned int有符号短整型最大值0111 1111 1111 1111 1111 1111 1111 1111 --》2^31-1 21亿最小值1000 0000 0000 0000 0000 0000 0000 0000 --》-2^31 -21亿long 长整型内存8字节unsigned longint无符号长整型最大值2^64-1最小值0signed longint有符号长整型最大值2^63-1最小值-2^63关键字sizeof(数据类型/常量/变量);获取某种数据类型在内存中所占的字节数②整型数据在内存中的存储方式无符号整型原码补码原码有符号整型符号位数据位正数原码负数补码补码 反码1【例】100 unsigned short原码0000 0000 0110 0100【例】 -100 signed short原码1 000 0000 0110 0100反码 111 1111 1001 1011补码 111 1111 1001 1100内存 1111 1111 1001 1100【例】-2026原码1 000 0111 1110 1010反码 111 1000 0001 0101补码 111 1000 0001 0110内存1111 1000 0001 0110③整型溢出unsigned short 最大值1最大值1 -----最小值最小值-1 -----最大值3.字符类型char 字符类型用于表示字符的一种数据类型。内存1字节。字符a —— zA——Z‘’ ‘%’ ‘#’ ‘’ ‘$’数字类字符‘0’ ‘1’ ‘2’ ‘ 9’ ...转义字符‘\n’ ‘\r’ ‘\v’ ‘\t’ ...ASCII转换标准规定了字符和整形数据之间的转换标准(输入man ascii查询ASCII码表)‘a’—— 97 —— 0110 0001‘\0’ ——0 ——0000 0000‘0’ ——48char类型本质是一种整型。unsigned char无符号字符型最大值1111 1111 —— 2^8-1255最小值0000 0000 —— 0signed char有符号字符型最大值0111 1111 —— 2^7-1127最小值1000 0000 —— -2^7-1284.浮点数类型用来表示小数的数据类型。单精度浮点型float精度范围6-8位内存中占的字节数4IEEE标准规定float类型在内存中以符号位(1bit)、指数位(8bits)、尾数位(23bits)的方式存储【例】6.25 float二进制110.01——1.1001*2^2(二进制科学计数法)符号位0指数位1272129 ——1000 0001(127幂次项系数)尾数位1001(科学计数法计数后小数点后的) 0000 0000 0000 0000 000(要23位不够补0)内存0100 0000 1100 1000 0000 0000 0000 0000 (符号位、指数位、尾数位)【例】8.125二进制1000.001——1.000001*2^3符号位0指数位1273130 》1000 0010尾数位0000 0100 0000 0000 0000 000内存 0100 0001 0000 0010 0000 0000 0000 0000双精度浮点型double精度范围12-16位内存中占的字节数8IEEE标准规定double类型在内存中以符号位(1bit)、指数位(11bits)、尾数位(52bits)的方式存储【例】6.25 double二进制110.01——1.1001*2^2(二进制科学计数法)符号位0指数位102321025 ——100 0000 0001(1023幂次项系数)尾数位1001(科学计数法计数后小数点后的) 0000 0000 0000 0000 0000 0000 0000 00000000 0000 0000 0000(要52位不够补0)内存0100 0000 0001 1001 0000 0000 0000 0000 0000 0000 0000 0000 0000 00000000 0000【注意】 浮点型数据在内存中存储时可能存在精度损失。5. 缺省类型缺省类型空类型 void使用位置1. 函数的形参和返回值 不传递参数、不返回数据1. 指针 void *——万能指针6. 泊尔类型逻辑类型 bool内存中1字节true/false1/0#include stdbool.h补充printf终端打印工具用法可以向终端打印出“”里面的内容当遇到%开头的格式控制符时将格式控制符换成逗号后面的值【例】printf(hello world\n);printf(%ld\n, sizeof(int));printf(int %ld\n, sizeof(int));printf(ch %c\n, ch);printf(f %f\n, f);printf(d %lf\n, d);%d —— 以十进制整型数据int方式打印%ld —— 以十进制整型数据long方式打印%c —— 以字符方式打印%f —— 以float类型控制打印%lf—— 以double类型控制打印%u —— 以无符号整形数据方式打印%lu —— 以无符号长整型方式打印