数据:简单变量和复合变量。本章介绍简单变量。
计算机中存储单位:bit,byte字节(字节的大小要求是可以表示一个基本字符集)
sizeof(int); // 必须带括号
sizeof(a); // 可以不带括号,a是变量
// 返回所占字节大小
变量名:
- 只能有数字字母下划线
- 只能有字母和下划线开头
- 区分大小写
- 不能使用关键字(int,return,double)
- _开头保留给实现,__保留给编译器及其资源
简单变量分为整形和浮点型。
整形一共有11种:有符号short,int,long int,long long int,无符号unsigned short ,unsigned int, unsigned long int, unsigned long long int.加上bool,char,wchar_t.(c++11中加入了char16_t,char32_t)
浮点型一共有三种:float,double,long double
整形大小:
- short 至少16bit
- int 至少16bit至少和short一样长
- long int 至少32bit,至少和int一样长
- longlong 至少64bit,至少和long一样长
climits 头文件包含整形的大小。
C++11初始化:使用初始化列表
int a = {1};
int a{1};
int a{}; // 初始化为0
C++保证了无符号类型越界:则循环(超过最大值从最小值开始加)
C++整形选择尽量以最低值为标准。
字面值:
a = 2; // 十进制dec
a = 02; // 8进制oct
a = 0xa; // 16进制hex
常量类型:
1L;long int
1u;unsigned int
1uL;unsigned long int
1uLL;unsigned long long int
char类型:字符或整形。char大小与字节的大小定义相似,本质是数值编码
转义序列:\n,\b退格
通用字符名
signed char 和 unsigned char :char自身的大小是确定的,但是其有无符号是不确定的,ASCII码可以使用是因为刚好127个。如果要明确有无符号需要使用unsigned cha 和signed char。
wchar_t是扩展字符集。
bool类型:true和false.进行自动转换.
浮点型:
浮点型是:指数型的存储方式,a*2^b,存储a和b两个值。
float精度6, double精度13, long double
浮点型精度较低,但是比整数的取值范围大。
表示方法:1.E表示法。2.小数点
浮点常量使用double存储
1.2f float存储 1.3L long double 存储
算数运算符:+,-,*,/,%
%必须是整数,针对正负数的公式不变
/根据除数和被除数的类型决定最终的结果。
算数运算符的先后顺序:
- 针对同一数的两个操作数:利用结合性和优先级判断
- 对于不同数的两个同级操作:由编译器决定
自动转换:
根据校验表决定:基本原则就是小变大,整数变浮点,无符号变有符号。
带来的问题:精度下降,大变小丢失部分数据
c++对于浮点转整数:直接丢弃后半部分
小整形编程大整形被称为整形提升
c++强制类型转换:
int (a);
auto 自动设置类型。