笔记
【1】数据类型分类(掌握)
(1)数据类型包括:基本类型、构造类型、指针类型、空类型(void)
基本类型包括:整型(signed、unsigned、short、int、long、long long)、字符型(char)、实型(float double)、枚举型(enum)
构造类型:数组、结构体(struct)、共用体(union)
【2】基本数据类型(掌握)
(1)逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。
(2)整数类型。包括char,shot,int和long。
(3)bool类型: 非零为真
类型名是:bool 值域是:非零(true),零(false)
例如: if(-1)
x = 12;
else
x = 18;
上面0.5是非零数值,逻辑值为真,所以x赋给的是12,而不是18。
(4)char类型
类型名称 长度(字节) 值域
char 1 -128~127或0~255(使用/J编译选项)
signed char 1 -128~127
unsigned char 1 0~255
求类型长度用 sizeof(char) = 1;
使用char数据类型的变量需要特别注意,防止数据超出值域,思考下列几个语句:
char c1 = 128; //出错,数据越界(-128)
char c1 = 129; //出错,数据越界 (-127)
unsigned char c2 = -1; //出错,数据越界 (255)
补充:补码
-128 ~ 127
1字节 = 8bit
正数的原码、反码、补码都相同。 127的补码为 01111111
负数的原码的最高位(符号位)为1 ,反码是原码的符号位不变,其它位取反,负数的补码是负数的反码加1。
-128的补码为 10000000
(5)short类型
类型名称 长度(字节) 值域
short(signed short) 2 -32768 ~ 32767
unsigned short 2 0 ~ 65535
(6)int类型
类型名称 长度(字节) 值域
int(signed int) 4 -2147483648 ~ 2147483647
unsigned int 4 0 ~ 4294967295
(7)浮点类型
float 占4个字节
double 占8个字节
(8)取类型值域的头文件
#include <limits.h>
【3】强制类型转换
(1) 强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。包括显示的数据类型转换,和隐式的数据类型转换。
例如:
int a = 22,b = 0;
float c = 24.87, d = 3.3;
b = (int)(a + c + d); //b 为50;
(2)强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来
(3)强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度。
(4)强制类型转换并不改变表达式中变量的数据类型和其值。
【4】总结与思考
(1)主要介绍了数据类型,包括分类、基本类型介绍、强制类型转换。
(2)C语言中包括哪些数据类型?
(3)如何做强制类型转换?