【C++基础】02 数据类型基础与运算
【C++基础】02 数据类型基础与运算
recode1 变量
1.1 整型(int)
注意:C++,int类型自动向下取整,自动类型转换可能会导致数据丢失
整数,例如 10 ,2 ,0, -996
大小4byte(32位二进制数)
1byte –> 8位二进制数
范围
1.1.1 int的小弟和大哥(short/long)
short 短整形 2bytes
long 长整形
4 or 8 bytes (取决于编译器和操作系统)
Tips: 可以用sizeof()运算符获得数据类型或者变量大小;
unsigned int
无符号整数: 0,1,2,3…
4bytes
1.2 单个字符(char)
1bytes 相当于一个无符号整数—>ASCII码–>字符
1.3 浮点数(float/double)
机制:科学计数法
数值 = 尾数 x 底数的指数次幂
1.4 布尔(bool)
真/假: true/false –> keywords(保留字)
1byte
本质 1或0
while(True){ |
1.5 字符串string
一串字符 长度不固定
本质为std里的一个类。
2. Constant常量
宏(定义)Macro:事先说好的规则或者模式
在预编译阶段进行
# define A B //用B替换所有出现的A |
3.不变量
有一些变量,赋予储值后就不想他改变了
Tips: const和#define的区别
(1)就起作用的阶段而言: #define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用。
(2)就起作用的方式而言: #define只是简单的字符串替换,没有类型检查。而const有对应的数据类型,是要进行判断的,可以避免一些低级的错误。
(3)就存储方式而言:#define只是进行展开,有多少地方使用,就替换多少次,它定义的宏常量在内存中有n个备份;const定义的只读变量在程序运行过程中只有一份备份。
(4)从代码调试的方便程度而言: const常量可以进行调试的,define是不能进行调试的,因为在预编译阶段就已经替换掉了。
4. 运算
4.1 四则运算
加:+
减:-
乘:*
除:/
4.2 取模
a%b:得到a除以b的余数 a和b必须为整数
4.3 自增自减运算符
自增:++
自减: --
顺序的差异如上图所示;
为何3号位程序输出值为3,没有继续+1?
解答如下:后置自增的程序是在程序检查后进行的,该变量的值确实+1了,但未能被cout
函数读取,这也正解释了为什么第四个的自增值为5;
5. 转换
5.1 自动转换
类似于Int中除法自动向下进位
5.2 强制转换
C风格的强制类型转换:
用括号加类型名,并不改变变量本来属性
|
6.静态和动态类型转换
7.格式化:让Output满足格式
- 控制有效数字位数(精度)
- 四舍五入
- 控制小数点后几位
流操作算子:setprecision(5) //五位有效数字
oct //8进制
hex //16进制