二、常量和变量
2.1 常量
- 常量是用于记录程序中不可更改的数据;
- C++中定义常量的两种方式:
- define 宏常量:#define 常量名 常量值
- const 修饰的变量:const 数据类型 常量名 = 常量值
note:define和const修饰常量的区别是什么?
- #define 是C/C++预处理器的指令之一,它在编译之前进行文本替换,将定义的标识符替换为对应的值或表达式。例如:
#define PI 3.1415926
。这个指令将PI定义为一个常量,并将在编译时使用该值的所有出现处替换为3.1415926.因为#define指令知识简单的文本替换,所以不会对代码类型和作用域造成影响,也没有类型和作用域检查,容易出现错误,并且不好查找。 - const是C++中的关键字,用于定义常量,将其与特定类型相关联。例如:
const double PI = 3.1415926
。这个语句定义一个双精度浮点型PI,其值为3.1415926,并将其与double类型相关联。const常量的值不能在程序运行时修改,因此具有类型安全和作用域控制优点。const常量还可以用作函数参数和返回值类型,从而提高代码的可读性和可维护性。 - 综上所述,#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 变量
- 变量的作用就是给一段指定的内存空间起名,方便操作这段内存;
- 语法:数据类型 变量名 = 初始值;
- 变量存在的意义:方便我们管理内存空间;
- 每一段内存都有一个地址编号;
- C++规定在创建一个常量或变量时,必须要指出相应的数据类型,否则无法给变量分配内存。
代码示例如下:
#include <iostream>
using namespace std;
int main()
{
//变量创建的语法:数据类型 变量名 = 变量初始值
int a = 10;
cout << "a = " << a << endl; // 输出语句 cout << "提示语" << 变量 << endl;
return 0;
}
运行结果:
a = 10