21天学通C++_Day2

继续学习,今天满课,相对学习内容较少,下面罗列内容:

0、常量

▪字面常量;

▪使用关键字const声明的常量,const double Pi = 22.0/7;  //后面有分号,跟定义变量一样

▪使用关键字constexpr声明的常量表达式,constexpr double GetPi() {return 22.0/7;}  //中间有空格,和#define格式一致

▪使用关键字enum声明的枚举常量,

enum RainbowColors

{

  Violet = 0,  //第一个枚举值指定为0(默认也为0),后面枚举值编译器认为依次加1

  Blue,  

  Red

};  //后面分号一定要有

RainbowColors MyColor = Blue;

▪使用#define定义的常量(已摒弃,不推荐),#define Pi 3.14286

  摒弃理由:#define是一个预处理器编译指令,让编译器对定义的值进行文本替换。然而,它不是类型安全的,是一种原始的常量定义方式,应避免使用。

1、为何应给变量赋初值?

有时候,需要根据变量的值(通常是核实它不为零)做条件处理,如果不对变量进行初始化,这样的逻辑将不可靠,因为未赋值或初始化的变量包含的内容是随机的

2、关于全局变量

应用程序的任何地方都可修改值,导致代码不稳定,所以不要为图简单使用全局变量。

3、unsigned int变量值为0,减1后结果如何?

环绕到可存储的最大值!所以,要在定义类型时就考虑清楚!

4、数组

C++编译器不会检查索引是否在数组的范围内,访问数组时,如果超越其边界,结果是无法预料的。很多情况下会崩溃。所以,要避免出现这种“篱笆柱错误”。

▪多维数组:C++可以模拟多维数组,但存储数组的内存仍为一维的。

▪动态数组:

vector<int> Dynarr (3);

int Num = 3;

Dynarr.push_back(Num);  //使用push_back()将Num压入到矢量中,而这个矢量动态地调整其长度,以存储更多数据

注:使用到了动态数组类 std::vector,需要包含头文件  #include <vector>

明天继续!

原文地址:https://www.cnblogs.com/Big-Rabbit/p/4364381.html