C++的常量定义(整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量)

在C++中,常量是那些一旦被定义后,在程序运行过程中其值就不能被改变的量。C++提供了多种类型的常量,每种类型都有其特定的用途和表示方法。下面将逐一介绍整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量。

整型常量

整型常量是没有小数部分的数值,包括正数、负数和零。在C++中,整型常量可以是十进制、八进制(以0开头)、或十六进制(以0x或0X开头)的。

int a = 100; // 十进制整型常量  
int b = 023; // 八进制整型常量,等价于十进制的19  
int c = 0x1A; // 十六进制整型常量,等价于十进制的26
字符常量

字符常量是用单引号括起来的一个字符。在C++中,字符常量实际上是以整数形式存储的,即字符的ASCII码值。

char ch = 'A'; // 字符常量
逻辑常量

在C++中,逻辑常量通常指布尔常量,它们只有两种值:true 和 false。

bool flag = true; // 逻辑常量true  
bool done = false; // 逻辑常量false
实型常量

实型常量即浮点常量,包括小数点和指数表示法。它们用于表示有小数部分的数值。

float pi = 3.14f; // 单精度浮点常量  
double area = 2.71828; // 双精度浮点常量  
long double e = 1.0e30L; // 长双精度浮点常量,使用指数表示法
地址常量

在C++中,通常不直接称某个值为“地址常量”,因为地址通常是由变量或数组名在编译时或运行时动态生成的。但是,指针常量(指向常量的指针或常量指针)可以被视为与地址常量相关的概念。一个指针常量一旦被初始化指向某个地址后,就不能再指向另一个地址,但可以通过指针修改它所指向的值(如果那个值不是常量的话)。

int var = 10;  
int* const ptr = &var; // 指针常量,ptr不能再指向其他地址
符号常量

符号常量是通过#define预处理指令或const关键字定义的常量。与#define相比,const定义的常量有类型,更加安全。

#define PI 3.14159 // 预处理指令定义的符号常量  
const double Pi = 3.14159; // 使用const关键字定义的符号常量

使用const定义的常量是类型安全的,编译器会进行类型检查,而#define定义的常量只是简单的文本替换,不进行类型检查。因此,在C++中推荐使用const来定义常量。

3. 掌握变量的定义与使用方法(变量的定义及初始化,全局变量,局部变量)

在C++中,变量是存储数据值的容器,它们具有特定的数据类型,用于指定可以存储在变量中的数据类型。变量的定义涉及为其指定一个名称(标识符)和数据类型。下面将详细介绍变量的定义与使用方法,包括变量的定义及初始化、全局变量和局部变量。

变量的定义及初始化

变量的定义包括指定其数据类型和名称。初始化是在定义变量的同时给它赋予一个初始值。

int a = 10; // 定义了一个整型变量a,并初始化为10  
double pi = 3.14159; // 定义了一个双精度浮点型变量pi,并初始化为3.14159  
char ch = 'A'; // 定义了一个字符型变量ch,并初始化为'A'

如果定义变量时没有初始化,那么它的初始值是未定义的(对于基本数据类型而言),这可能会导致不可预测的行为。但是,对于类类型的对象,如果没有显式初始化,则会自动调用其默认构造函数(如果存在的话)。

全局变量

全局变量是在函数外部定义的变量,它们在程序的整个执行期间都保持其值。全局变量可以被程序中的所有函数访问和修改(除非它们被声明为static,这将限制它们的可见性)。

#include <iostream>  
  
int globalVar = 100; // 全局变量  
  
void func() {  
    std::cout << "全局变量的值是: " << globalVar << std::endl;  
}  
  
int main() {  
    func(); // 访问全局变量  
    return 0;  
}
局部变量

局部变量是在函数内部定义的变量,它们只能在定义它们的函数内部被访问和修改。当函数执行完毕时,局部变量的值会被销毁(对于自动存储期的变量而言)。

#include <iostream>  
  
void func() {  
    int localVar = 20; // 局部变量  
    std::cout << "局部变量的值是: " << localVar << std::endl;  
    // localVar的作用域仅限于func函数内部  
}  
  
int main() {  
    func(); // 访问func函数中的局部变量(通过函数调用)  
    // 这里不能访问localVar,因为它在func函数内部定义  
    return 0;  
}
变量的作用域和生命周期

作用域:变量在程序中可以被访问的区域。全局变量的作用域是整个程序,而局部变量的作用域是定义它的函数或代码块。
生命周期:变量从创建到销毁的时间段。全局变量的生命周期贯穿整个程序执行期间,而局部变量的生命周期则限于定义它的函数或代码块的执行期间。

静态变量

静态变量(无论是全局的还是局部的)在程序的整个执行期间只被初始化一次,并且它们的值在函数调用之间保持不变。静态局部变量在函数调用之间保持其值,而静态全局变量则限制了变量的可见性(通常用于限制变量在文件内的可见性)。

void func() {  
    static int staticVar = 0; // 静态局部变量,只在第一次调用时初始化  
    std::cout << "静态局部变量的值是: " << ++staticVar << std::endl;  
}  
  
// 静态全局变量的例子与全局变量类似,但通常与static关键字一起使用来限制可见性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值