今天就来跟着学霸来学一下基本数据类型学习点
逻辑类型
true false
0代表假 非0为真
整数类型
unsigned 无符号
signed 有符号 最高位为符号位 0为正,1为负编译器中默认为有符号
原码:符合人的逻辑思维的二进制数据,最高位为符号位
反码:正数的反码与原码相同,负数的反码:符号位保持不变,其余位取反补码:正数的补码和原码相同,负数的补码在反码的基础上加1
计算机中数据以补码的形式存放
char 1个字节 0~255 -128~127 数据越界:注意char的取值范围 -128-> 10000000(二进制)(临界值)
char还可以当做字符类型,其实本质还是整型,用0~127代表了128个字符 short 2个字节
int 4个字节 16位机中占2个字节
long 4个字节 64位机中占8个字节
浮点类型
编译器默认保留小数点后六位
float 占4字节 精确到小数点后6位 有效位为6~7位
double 占8个字节 精确到小数点后16位 有效位为15~16位
浮点数在内存中默认保存小数点后六位(float 和 double类型都是)
浮点数在内存中的保存形式为科学技术法且为近似保存,保存后输出可能造成精度失
准。
构造类型
指针类型
void型
常量:在程序执行过程中不会改变的数据
整型常量:10
浮点型常量:1.23
字符常量:‘a’‘0’
字符串常量: “farsight”
标识常量:
define 可以替换一个常量或者表达式,甚至可以替换一句语句变量:在程序执行过程中可以改变的量一般形式:数据类型 变量名;
初始化:在定义的同时进行赋值
局部变量:函数内部定义,作用域为该函数
全局变量:函数外定义,作用域为整个文件
存储类型 数据类型 变量名;
auto:只能够修饰局部变量,定义局部变量不写存储类型的话会默认为auto register:修饰的变量会存放在寄存器中,加快程序的运行效率 extern :外部声明 修饰全局变量
static: 修饰全局变量:限制了全局变量的作用域,仅本文件可用,其他文件无法通过extern 的方式引用
修饰局部变量:局部变量的存储位置会从栈区换为数据区,作用域不变,生命周期延长,当进程结束后才会自动释放
1、只能够初始化一次
2、运算的结果会保留
修饰函数:该函数仅本文件可用
(栈区,堆区,数据区的区别)
二、数据类型转换
隐式转换 (编译器优化的结果)
1、赋值转换
可能会出现数据越界
当高精度数据转化为低精度数据类型时,会出现精度丢失
2、算术运算
当一个低精度数据类型的数据和一个高精度数据类型的数据进行运算,计算结果会
自动转化为高精度数据类型
char、short-->int-->long-->float-->double
3、当有符号数据和无符号数据进行运算,会自动转化为无符号
强制转换(人为强制转换想达到某一个效果)