文章目录
一、数据类型
1、基本数据类型
1.整数类型
整数类型分为有符号的整数类型(默认signed)、无符号的整数类型(unsigned)
有符号类型(signed):最左边1位作为符号位剩余作为数据位,整数直接存放二进制,负数存补码(原码->反码->补码)
无符号类型(unsigned):直接存放数据对应的二进制形式
short :短整型,2个字节
int :整形 ,4个字节
long :长整型,8个字节
2.字符类型
字符类型分为有符号的整数类型(默认signed)、无符号的整数类型(unsigned)
char :字符型 ,1个字节
'a' == 97
'A' == 65
'0' == 48
'\0' == 0
3.浮点数类型
浮点数类型均为有符号类型(signed)
float:单精度浮点数类型,4个字节
double:双精度浮点数类型,8个字节
4.布尔类型
bool true: 1 flase: 0
非0值均为逻辑真值
0值为逻辑假值
5.缺省类型
void :
搭配函数或指针使用,表示类型缺省
2、构造数据类型
二、常量与变量
1、常量
在程序运行过程中值不能被改变的量称为常量
1.整型常量
默认为 signed int
2.浮点型常量
默认为 double
3.字符常量
转义字符: \
'\''
'\\'
'\n' 换行符
'\r' 回车符
'\t' 横向制表符
'\v' 纵向制表符
'\b' 退格符
4.字符串常量
字符串末尾存在一个\0字符
5.标识常量
#define PI 3.1415
宏定义只是代码的替换,中间不进行任何数据计算的操作
宏在使用时能加括号就加括号
2、变量
在程序运行过程中值可以发生改变的量称为变量
注意:变量要先定义再使用
变量命名要求:
1.变量名只能由字母、数字、下划线构成,不能以数字开头
2.变量名不要与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意
三、不同数据类型转换
1、显式类型转换(强制类型转换)
(int)5.2
舍弃精度变成5
(double)5
扩展精度变成5.0
2、隐式类型转换
准则:低精度转换成高精度
同种类型: 所占空间越大,精度范围越高
无符号和有符号类型:无符号精度范围高于有符号类型
整数类型和浮点数类型:浮点数精度范围高于整数类型精度范围
char char -> int
short short -> int
char short -> int
float float -> double
float double -> double
float char -> double
unsigned signed -> unsigned
double int -> double
四、表达式
由运算符连接的一个或者多个常量变量所组成的式子
1.表达式一定有值
2.表达式一定有类型
五、运算符
1、算术运算符
+ 加
- 减
* 乘
/ 除
% 取余(不能对浮点数操作)
++ 自增运算符
-- 自减运算符
i++ 后置++ 先用i,再让i++
++i 前置++ 先让i自加,再用i
2、赋值运算符
左值 = 右值
左值:必须是变量不能是常量或者表达式
右值:可以是常量、变量或者表达式
小数据放入大空间高位需要补位(有符号数补符号位、无符号数补0)
大数据放入小空间直接截取数据低位(有可能正数截成负数,有可能负数截成正数)
左值为浮点数类型,右值为整数类型时,会将整数类型转换为浮点数类型赋值
左值为整数类型,右值为浮点数类型时,会将浮点数类型舍弃精度赋值给整数类型
如果左值和右值空间大小一样,会将右值直接拷贝到左值空间中
3、逗号运算符
从左至右依次执行,将最后一个表达式的结果作为整体的结果
4、sizeof运算符
获得变量或者数据类型在内存中所占字节数
printf(“sizeof(short): %d\n”, sizeof(short));