第三天笔记
1.数据类型
定义变量,需要数据类型,可以决定数据在内存中如何存储。
2.整型
short 短整型 2个字节
int 整型 4 默认int
long 长整型 数据值用L结尾 4
long long 常常整型 数据值用LL结尾 8
数据类型也分为有符号(signed)和无符号(unsigned)
范围不同有符号的因为首位为符号位,所以要比无符号的要小,但是数量一样。
example:用最小的字节char,一个字节无符号的范围:0~255,256个
一个字节有符号的范围:-128~127 ,256个(记得算0)
short s1 =10; // 方式1
signed short s2 =20; // 方式2
unsigned short s3 =30; // 方式3
// 方式1就是方式2的简写
int和long和long long 同上
无符号的数据(字面量),一般以u结尾unsigned short s1 = 10U;unsigned int i1 = 11U;unsigned long l1 = 12LU;unsigned long long ll1 = 13LLU;printf("%hu\n", s1);printf("%u\n", i1);printf("%lu\n", l1);printf("%llu\n", ll1);
3.浮点型
float 单精度类型 4
float类型的数据,输出使用%f格式占位符, 输入也是使用%f
doubule 双精度类型 8 默认doubule
double类型,输出使用%f是%lf,如果是输入,必须是%lf
long doubule 长双精度类型 16
long doubule 类型,输出用%Lf,输入用%Lf
浮点型也可以用%e来输入输出
小数有两种表现方式:example: 12.25f ,1.25*e1次方
-
无论是float类型还是double类型都可以使用%e的方式来展示对应的小数方式
-
无论是float类型还是double类型的数据在输出的时候,默认是6位有效小数
-
如果想要获取几位的有效小数,可以在%f或者是%lf或者是%e的中间使用.数字的形式
printf("%.2f",f1);保留两位有效小数,有四舍五入的情况 printf("%.2lf",d1);保留两位有效小数,有四舍五入的情况 printf("%.2Lf",lf); printf("%.2e",num1);
4.字符型
-
单个的字母,数字,符号使用一对单引号括起来,就是字符
-
如果有多个字符放在一起,则可以看成是字符串
-
字符类型,char,占1个字节,本质是整型,分为有符号和无符号,有对应的ASCII码,是从0到127结束,一共128个
-
重点:如果char进行运算,会隐形转换成int类型,字节也会变成4个,
5. 布尔类型
就是判断真假
定义布尔类型三种方式
方式1:使用宏定义
#define BOOL int
#define TRUE 1
#define FALSE 0
方式2:使用_Bool,也是c99中新增的一种数据类型
_Bool flag1 = 1;
_Bool flag2 = 0;
_Bool flag3 =-3;
方式3:引入系统的库,<stdbool.h>
bool flag1 = true;
bool flag2 = false;
6.获取数据类型大小
使用sizeof获取数据类型的大小
语法方式1:使用宏定义
#define BOOL int
#define TRUE 1
#define FALSE 0
方式2:使用_Bool,也是c99中新增的一种数据类型
_Bool flag1 = 1;
_Bool flag2 = 0;
_Bool flag3 =-3;
方式3:引入系统的库,<stdbool.h>
bool flag1 = true;
bool flag2 = false;
7.数据类型的转换
-
类型转换,指的是不同类型的数据在运算或者赋值的时候要进行类型的转换操作
-
类型转换分为:自动类型转换(隐式类型转换)和强制类型转换(显示类型转换)
-
一般窄类型转宽类型,属于自动类型转换,没有副作用
-
如果是宽类型转窄类型,也属于自动类型转换(一般我们都会强制的进行转换操作),有副作用
8.一些常见的占位符
%x 属于没有前缀的十六进制
%#x 带有小写前缀的十六进制
%#X 带有大写前缀的十六进制
%u 无符号的整数
%d 有符号的整数
%hu 无符号的短整型
%hd 有符号的短整型
%lu 无符号的长整型
%ld 有符号的长整形
%llu 无符号的长长整型
%lld 有符号的长长整型
%f 属于float类型
%lf 属于double类型的
%Lf 数long double类型的
%e 科学计数法的形式
%c 字符char
%zu sizeof()用来计算字节数