常量类型
- 整型常量
- 实型常量:
十进制小数形式
指数形式:-123.456e-100 - 字符型常量
普通字符:‘a’、‘A’ 保存成ASCII码
转义字符:P46 - 字符串常量:“boy”、“123”
- 符号常量
用#define指令指定一个符号常量。
#define PI 3.1415 //末尾没有;放在预编译行
符号常量在预编译时,编译系统用值进行字符替换。预编译完成后,符号常量就不存在了,全部变为具体值了。
变量
- 变量代表一个有名字,有特定属性的存储单元
- 在对程序编译连接时,编译系统给每一个变量名分配对应的存储单元。从变量中取值,实际上就是通过变量名找到相应的内存地址,从该存储单元中读取数据。
常变量
const int a=3;
常变量于常量的差异在于,常变量仍然是变量,有类型,占存储单元。只是值不可变。可以使用常变量代替符号常量。
数据类型
整型数据
基本整型
- 整型int:
2个字节或4个字节
用整数的补码形式存放。符号位为0为正,符号位为1为负。
负数的补码形式为:正数原码按位取反加1
若4个字节,则范围为-231~231-1 - 短整型short int或short
2个字节
-215~215-1 - 长整型long int或long
4个字节 - long long int或long long
8个字节
sizeof(short)<=sizeof(int)<=sizeof(long)<=sizeof(long long)
2字节 2或者4字节 4字节 8字节
带符号位的整型
只有整型类型才能加符号位
字符型数据
字符与字符代码
- ‘a’、‘A’、’!’:以单引号表示
- 一个字符一个字节8位二进制数
- 一般只包括ASCII字符集,共127个,7个二进制数
- 字符以整数型时(ASCII)码保存在内存中
字符变量
- char为数据类型声明
- char c=’?’ 实际上是将整数63赋值给c
- 输出时可以输出整型%d也可以输出字符%c
- 字符类型也属于整型,也可以使用signed和unsigned修饰符
浮点型数据
有限的位数不能完全精确地存储一个实数,浮点型数据有能够存储的最小绝对值数。也就是说0周边有一些极小的数是无法表现的。
float
- 每一个float变量4个字节
- 以规范二进制指数形式存放,存储时分为小数部分(0.后面的数)和指数部分(10^)
- 小数部分bit越多,精度越大;指数部分bit越多,范围越大\
- 输出时可以指定小数显示位数,例如printf(%7.2f)即共7位数,小数2位
double
- 双精度浮点型,8字节
- 运算时,float自动转化为double型
long double
16字节或8个字节
浮点数的表示
float pi=3.14159 //为pi分配4个字节,但是计算时按照双精度计算
float a=10.0 //只要出现小数点,都是浮点型数据,按双精度处理
float pi=3.14159f //强制规定为单精度处理