Day02 什么是变量和常量?

二、常量和变量

2.1 常量

  1. 常量是用于记录程序中不可更改的数据;
  2. C++中定义常量的两种方式:
    • define 宏常量:#define 常量名 常量值
    • const 修饰的变量:const 数据类型 常量名 = 常量值

note:define和const修饰常量的区别是什么?

  1. #define 是C/C++预处理器的指令之一它在编译之前进行文本替换将定义的标识符替换为对应的值或表达式。例如:#define PI 3.1415926。这个指令将PI定义为一个常量,并将在编译时使用该值的所有出现处替换为3.1415926.因为#define指令知识简单的文本替换,所以不会对代码类型和作用域造成影响,也没有类型和作用域检查,容易出现错误,并且不好查找。
  2. const是C++中的关键字,用于定义常量,将其与特定类型相关联。例如:const double PI = 3.1415926。这个语句定义一个双精度浮点型PI,其值为3.1415926,并将其与double类型相关联。const常量的值不能在程序运行时修改,因此具有类型安全和作用域控制优点。const常量还可以用作函数参数和返回值类型,从而提高代码的可读性和可维护性。
  3. 综上所述,#define和const的主要区别在于,#define时预处理器指令,只是简单的文本替换,而const是C++中的关键字,可以和与类型相关联,提供安全性和作用域控制。通常情况下,建议使用const来定义常量,避免#define的一些潜在问题。
#include <iostream>
using namespace std;

#define Day 7 

int main()
{
    /*
    Day = 14;  //错误,Day是常量,一旦修改就会报错
	报错原因:预处理就变成了 7 = 14;
    cout << "一周总共有:" << Day << "天" << endl;
    */

    cout << "一周总共有:" << Day << "天" << endl;

    // 输出语句:cout << "提示语" << 变量 << endl; 

    /*
    const int month = 12;
    month = 24;  //错误,const修饰的变量也称为常量
    */

    int month = 12;
    month = 24;  //正确,这样可以修改变量的值

    cout << "一年总共有:" << month << "个月" << endl;

    return 0;

}

运行结果:

一周总共有:7天
一年总共有:24个月

2.2 变量

  1. 变量的作用就是给一段指定的内存空间起名,方便操作这段内存;
  2. 语法:数据类型 变量名 = 初始值;
  3. 变量存在的意义:方便我们管理内存空间;
  4. 每一段内存都有一个地址编号;
  5. C++规定在创建一个常量或变量时,必须要指出相应的数据类型,否则无法给变量分配内存。

代码示例如下:

#include <iostream>
using namespace std;

int main()
{

    //变量创建的语法:数据类型 变量名 = 变量初始值
    int a = 10;  

    cout << "a = " << a << endl;   // 输出语句 cout << "提示语" << 变量 << endl; 

    return 0;
}

运行结果:

a = 10