类型语言
变量提前定义
必须确定类型
语言两个发展方向:强类型(c++,java),弱类型(javascript,php,python)
数据类型
- 整数
char -> 1Byte,short -> 2Byte,int,long,long long -> 8Byte
int 表示寄存器的大小 - 浮点数
float,double,long double - 逻辑
bool
#include “stdbool.h” - 指针
* - 自定义类型
类型的区别
表达的数的范围:char < short < int < float < double
输入输出格式化:%s %d %ld %lf
内存所占字节:1-16
内存中表达形式:二进制、编码
计算机内部表达
计算机内部一切都是二进制
补码,负数
-a = 2^n - a
1 | char c = 255; |
unsigned
unsigned char c = 255;
char c = 255u;
纯二进制数,不看成补码
整数边界
↓- -128 | 127 -↓
... ...
↑- -1 | 0 -↑
1 | char c = 127; |
进制
0 8进制
0x 16进制
1 | printf("0 = %o, 0x = %x\n", 8进制,16进制); |
科学计数法
-5.12E+16
浮点运算
±∞ Nan
float 精度 7位
double 精度 15位
类型自动转换
当运算符两边出现不一致的类型,会自动转换成较大的类型
printf:任何小于 int 的类型会转换成 int,float 会转换成 double
scanf:要输入 short,需要 %hd
//强制转化,不会更改原始值,优先级高于四则运算
(int) 10.21