第五章---C++ 变量与常量(字面常量、const、#define、枚举常量)

C++ 变量

1. 变量的定义

变量是程序中用于存储数据的存储位置。定义变量的基本格式如下:

数据类型 变量名;
int age;
float salary;
char grade;

2. 变量的类型

基本数据类型

  • int:整数类型
  • char:字符类型
  • float:单精度浮点数
  • double:双精度浮点数
  • bool:布尔类型(true或false)

修饰符

  • signedunsigned:用于指定整型变量的符号
  • shortlong:用于指定整型变量的长度

构造数据类型

  • array:数组
  • string:字符串
  • struct:结构体
  • union:联合体
  • enum:枚举

3. 变量的初始化

变量可以在定义时进行初始化,也可以在定义后进行赋值。

int age = 25; // 初始化
float salary;
salary = 5000.50; // 赋值

4. 变量的作用域

变量的作用域是指变量在程序中可见和可访问的区域。C++中有几种作用域:

  • 全局作用域:在所有函数外部定义的变量,可以在整个程序中访问。
  • 局部作用域:在函数内部定义的变量,只能在函数内部访问。

5. 变量的生命周期

变量的生命周期是指变量存在的时间,从创建到销毁。

  • 全局变量:程序开始执行时创建,程序结束时销毁。
  • 局部变量:进入作用域时创建,离开作用域时销毁。

6. 变量的存储类

C++提供了几种存储类来定义变量在内存中的存储方式:

  • auto:自动存储类(默认)
  • static:静态存储类
  • extern:外部存储类
  • register:寄存器存储类(已废弃)

7. 变量的命名规则

  • 变量名必须以字母或下划线开头,不能以数字开头。
  • 变量名不能包含空格和特殊字符(除了下划线)。
  • 变量名是大小写敏感的。
  • 变量名不能是C++的关键字。

8. 示例

以下是一个简单的C++程序,演示了变量的使用:

#include <iostream>
int main() {
    int number = 10; // 定义并初始化一个整型变量
    std::cout << "The number is: " << number << std::endl;
    return 0;
}

在这个例子中,我们定义了一个名为number的整型变量,并将其初始化为10。然后,我们使用std::cout输出变量的值。

C++ 常量

在C++中,常量是程序中其值不能被改变的量。使用常量可以增加代码的可读性和可维护性,同时还可以避免意外修改重要数据。以下是C++中常量的几种类型及其详细讲解:

1. 字面常量(Literal Constants)

字面常量是直接出现在源代码中的值,如数字、字符或字符串。

  • 整型字面常量:5, 0, -10
  • 浮点型字面常量:3.14, 2.718f
  • 字符字面常量:'a', '\n'
  • 字符串字面常量:"Hello, World!"

2. const关键字定义的常量

使用const关键字可以定义一个常量,其值在初始化后不能被修改。

const int MAX_VALUE = 100;

这里的MAX_VALUE是一个常量,它在程序中的任何地方都不能被赋予不同的值。

3. #define预处理指令定义的常量

在C++中,可以使用预处理指令#define来定义一个常量。

#define PI 3.14159

#define定义的常量在编译前会被文本替换,因此没有类型,也不占用存储空间。

4. const 和 #define 的区别

const:const定义的常量遵循C++的作用域规则。它可以被定义为局部常量,也可以被定义为类成员或全局常量。
#define:#define定义的宏在默认情况下是全局的,不受作用域限制。宏的替换是在预处理阶段进行的,因此它不会受到作用域的影响。

5. 枚举常量(Enumerated Constants)

枚举是一种用户定义的数据类型,它由一组命名的整数常量组成。

enum Weekday {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY};

在这里,MONDAYTUESDAY等都是枚举常量,它们的值默认从0开始递增。

6. 特点与使用注意事项:

  • 不可修改性:一旦常量被定义并初始化,其值就不能被改变。
  • 命名规则:通常,常量名使用大写字母和下划线来命名,如MAX_SIZE
  • 类型安全:与#define相比,const关键字提供了类型安全性,因为const定义的常量有明确的类型。
  • 作用域const定义的常量的作用域遵循常规的作用域规则,而#define定义的常量默认是全局的,不受作用域限制。
  • 初始化const定义的常量必须在声明时或类构造时初始化。

示例:

#include <iostream>
const double PI = 3.14159;
#define RADIUS 5
int main() {
    const int SIDES = 4;
    double area = PI * RADIUS * RADIUS;
    std::cout << "Area of the circle: " << area << std::endl;
    return 0;
}

在上述代码中,PIRADIUS都是常量,其中PI是通过const关键字定义的,而RADIUS是通过#define定义的。SIDES是一个局部常量,表示一个正方形的边数。

以上就是关于C++变量与常量的详细讲解。希望对您有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值