常量const
常量是不能被修改的
常量一般使用全大写进行声明是一个很好的习惯
不能是保留单词
多个单词可以用下划线进行链接
要见名知意
const int ANGER = 30;
异常TryCatch
double division(int a, int b){
// 如果b = 0 抛出一个 异常
// 当出现问题的时候 抛出一个 异常 通过 throw进行 捕获
if (b == 0) {
// throw 可以 跟 任意 表达式 表达式类型 决定了 抛出异常的类型
// 例如 下面 是一个 字符串 异常 类型 就是 const char *msg
throw "division by zero condision!";
}
return a/b;
}
// 使用
int x = 40;
int y = 0;
double z = 0;
try {
// 保护代码 标示被激活的 异常 后面 可以 跟多个 catch语句
z = division(x, y);
} catch (const char *msg) {
// terminating with uncaught exception of type char const* 如果类型 不对 会报错的 语句
// 捕获异常 如果是... 可以捕获 任何 异常
cerr<<msg<<endl;
}
数据类型转换
bool,char,short int, 枚举enum >> int >> long int >> long long int >> float >> double >> long double
如果是左边的数据类型转换到右边的数据类型是自动转换,因为右边的数据类型占有的内存空间大 可以放下左边的数据类型。
如果是右边的数据类型转换为左边的数据类型是强制类型转换。
数组Array
数组定义:
int x[5] = {1, 3, 5, 7, 9};
int y[5];
int length = sizeof(y)/sizeof(y[0]);// 数组长度
for (int i = 0; i < length; i++) {
y[i] = i;
}
int z[5];
z[3] = 100;
// 定义动态的数组vector
// #include <vector> // 要导入这个头文件
// 创建 一个 向量 用于 存储数组
// 类似 链表
// 定义了 一个 用于 存储 整形的 向量
vector<int> vec;
// 打印出 vec 的 大小
cout<<"vector size:"<<vec.size()<<endl;// 0
// 向 向量 中 追加 5个 整数
for (int j = 0; j < 5; j++) {
vec.push_back(j);// 压栈
}
// 追加后 vec的 大小
cout<<"vector size:"<<vec.size()<<endl;// 5
vec.pop.back();// 出栈