程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

C++ const 关键字,如何定义常变量,常指针?linux C++第4讲

balukai 2025-03-17 15:58:31 文章精选 4 ℃

const定义常变量

C++提供了const关键字来定义一个“常量”,例如,我们定义一个变量,变量中的数据不可以被修改,那么,可以使用const关键字声明变量,定义变量是“常量”类型。例如:

const float PI = 3.14159;

定义了常变量PI,它具有变量的属性,有数据类型,占用存储单元,有地址,可以使用指针指向它,只是,在程序运行期间,这个常变量的值是固定的,不能改变。

所以,在C++编程中,都使用const来取代了用 #define 定义符号常量的作用。一般把程序中不允许改变值的变量定义为常变量。如下是测试的例子:


可以看到,我们定义了LEN宏,可以使用LEN宏来定义字符数组的长度。

同时,我们使用const关键字来定义一个常变量MAX_NUM,然后,可以使用MAX_NUM常变量来定义字符数组的长度。如果MAX_NUM是普通的变量,那么,不可以作为字符数组长度的定义。

而且,不可以修改常变量的数据。例如,修改代码如下:

可以看到,提示MAX_NUM是只读类型。所以,不可以修改常变量的值。

const 修饰指针

假设有如下定义一个指针:

int a = 12689;//定义int类型的变量a;

int* p = &a; //定义int*类型的指针变量p,并且设置变量a 的地址,所以,指针p指向变量a;

那么,const 在 int* p 这个形式中,可以存放在两个不同的地方,存放在不同的地方,就修饰不同的内容为“常量”。

(1) const 紧跟着指针变量后面,例如:

char* const pstr = "mylinux.vip";//定义pstr指针变量,指向一串字符串;

就是 const 后面紧接这 pstr,所以, const 就修饰 pstr 这个指针,那么,pstr 就是一个常量,所以,pstr存放的地址值是一个常量,不可以改变。就是不可以修改pstr指针变量存放的数值(pstr指针变量存放的地址值)。例如:


所以,pstr是只读类型,不可以修改pstr指针变量的值。不可以修改pstr指针变量存放的地址值。

(2) const 紧跟在指针类型的后面,例如:

const char* pstr = " mylinux.vip ";//定义pstr指针变量,指向一串字符串

最近发表
标签列表