第3章 处理数据
3.1 简单变量
程序必须记录信息的3个基本属性:–> 声明一个变量
- 信息将存储在哪里
- 要存储什么值
- 存储何种类型的信息
3.1.1 变量名
C++命名规则:
- 在名称中只能使用字母字符、数字和下划线
- 名称的第一个字符不能是数字
- 区分大写字符与小写字符
- 不能将C++关键字用作名称
- 以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。
- C++对于名称的长度没有限制,名称中所有的字符都有意义,但有些平台有长度限制。
3.1.2 整型
3.1.3 整型short、int、long和 long long
计算机内存由一些叫做位bit的单元组成。
- 对整型int来说,一个整型占用32bit,也即4Byte。绝对值在109范围以内的整数都可以定义为int型
- 对长整型long long来说,一个整数占用64bit,也即8byte.
- 绝对值在1018范围以内的整数都可以定义为long long型。
- 如果long long型赋大于231-1的初值,则需要在初值后面加上LL,否则会编译错误。
实际上,short是short int的简称,而long是long int的简称
字节byte通常指的是8位的内存单元。
字节指的就是描述计算机内存量的度量单位。
1KB == 1024byte
1MB == 1024KB
1 运算符sizeof和头文件limits
sizeof
运算符返回类型或变量的长度,单位为字节。
头文件climits定义了符号常量来表示类型的限制。
预处理器#define
2 初始化
初始化将赋值与声明合并在一起。
扫描二维码关注公众号,回复:
8980127 查看本文章
3 C++11初始化方式
使用大括号进行初始化
3.1.4 无符号类型
使用关键字unsigned
来修改声明即可。
unsigned
本身是unsigned int
的缩写。
3.1.5 选择整型类型
3.1.6 整型字面值
进制
3.1.7 C++如何确定常量的类型
默认C++将整型常量存储为int类型
3.1.8 char类型:字符和小整数
1 程序说明
2 成员函数cout.put()
cout.put()函数,该函数显示一个字符。可以替代<<运算符。
3 char字面值
4 通用字符名
5 signed char和unsigned char
与int不同的是,char在默认情况下既不是没有符号,也不是有符号的。
6 wchar_t
wchar_t类型是一种整数类型,它有足够的空间,可以表示系统使用的最大扩展字符集。
7 C++11新增的类型:char16_t和char32_t
char16_t,无符号,长16位
char32_t,无符号,长32位
使用前缀u表示char16_t字符常量和字符串常量。
使用前缀U表示char32_t常量。
3.1.9 bool类型
- true,真,1/非0
- false,假,0
3.2 const——限定符
常量被初始化后,其值就被固定了,编译器将不允许再修改该常量的值。通常将名称的首字母大写,或将整个名称大写。
#define 标识符name 常量value;
const 数据类型 变量名 = 常量;
const type name = value;
define除了可以定义常量外,其实可以定义任何语句或片段。
- 宏定义是直接将对应的部分替换,然后才进行编译和运行。
- 因此要添加足够的括号,避免歧义出现,给能加括号的地方都加上括号。
优点:
- 它能够明确指定类型。
- 可以使用C++的作用域规则将定义限制在特定的函数或文件中
- 可以将const用于更复杂的类型
3.3 浮点数
缩放因子的作用是移动小数点的位置。
3.3.1 书写浮点数
- 使用常用的标准小数点表示法
- 表示浮点值的方法叫做E表示法
3.3.2 浮点类型
float、double、long double
- 对单精度float来说,一个浮点数占用32bit,其中1bit作为符号位、8bit作为指数位、23位作为尾数位,其有效精度只有6-7位。
- 对双精度double来说,一个浮点数占用64位,其中依照浮点数的标准,1bit作为符号位、11bit作为指数位、52bit作为尾数位,其中有效精度有15-16位。
- C语言中,%f是float和double型的输出格式。
3.4 C++运算符
3.4.1 算术运算符
3.4.2 关系运算符
3.4.3 逻辑运算符
3.4.4 条件运算符
A ? B : C
3.4.5 位运算符
- typedef起别名,用别名来替代原来的写法。
- math函数
- 条件表达式:
- switch语句中每个case里需加break
- break直接退出循环
- continue临时结束循环的当前轮回
3.4.6 强制类型转换
(新类型名)变量名