const关键字在编程中的具体用法和作用是什么?

更新于
2026-10-10 05:35:18
2阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计486个文字,预计阅读时间需要2分钟。

const关键字在编程中的具体用法和作用是什么?

1. `const`修饰普通变量 + 变量变为常量,具有常量性质,不可修改(只读)。

2.`const`修饰指针 +

- `int a=10;` - `const int *p1=&a;` (第一个`const`修饰指针) - `int const *p2=&a;` (第二个`const`修饰指针) - `int *const p3=&a;` (第三个`const`修饰指针) - 第一个`const`修饰的`*p1`是不可修改的,即指针指向的内容不可变。

1、const修饰普通变量

变量变为常变量,具有常数性质的变量。不可以修改(只读)。

2、const修饰指针

int a=10; const int* p1=&a; int const *p2=&a; int* const p3=&a;

第一个const修饰的是*p1,也就是不可以通过指针引用去修改指针所指向变量的值。

const关键字在编程中的具体用法和作用是什么?

第二个与第一个效果相同,写法不一样而已。

第三个const修饰的是指针本身p3,表示指针不可修改。

3、const修饰函数形参

const修饰引用形参

void func(const int& val)

表示无法通过引用修改实参,这里的引用实际是实参的一个别名,没有进行拷贝,保证了外部数据的安全性。

注意:如果函数的参数是非const的引用,则他就不能接受const实参变量,这样会造成权限的放大,如果函数的参数是const指针或引用,则它既可以接受 const的实参变量,也可以接受非const实参变量,权限只能缩小不能放大。

4、const修饰成员变量

表示为成员常量,不能修改,同时他只能在初始化列表中赋值。

5、const修饰成员函数

const成员函数表示不能修改this指针,所指向对象的成员变量也不可以修改,const修饰类成员函数实际上是:const 类类型 *const this,

class data { public: void display()const { ...; } //实际写法 void display(const data *const this) { ...; }




本文共计486个文字,预计阅读时间需要2分钟。

const关键字在编程中的具体用法和作用是什么?

1. `const`修饰普通变量 + 变量变为常量,具有常量性质,不可修改(只读)。

2.`const`修饰指针 +

- `int a=10;` - `const int *p1=&a;` (第一个`const`修饰指针) - `int const *p2=&a;` (第二个`const`修饰指针) - `int *const p3=&a;` (第三个`const`修饰指针) - 第一个`const`修饰的`*p1`是不可修改的,即指针指向的内容不可变。

1、const修饰普通变量

变量变为常变量,具有常数性质的变量。不可以修改(只读)。

2、const修饰指针

int a=10; const int* p1=&a; int const *p2=&a; int* const p3=&a;

第一个const修饰的是*p1,也就是不可以通过指针引用去修改指针所指向变量的值。

const关键字在编程中的具体用法和作用是什么?

第二个与第一个效果相同,写法不一样而已。

第三个const修饰的是指针本身p3,表示指针不可修改。

3、const修饰函数形参

const修饰引用形参

void func(const int& val)

表示无法通过引用修改实参,这里的引用实际是实参的一个别名,没有进行拷贝,保证了外部数据的安全性。

注意:如果函数的参数是非const的引用,则他就不能接受const实参变量,这样会造成权限的放大,如果函数的参数是const指针或引用,则它既可以接受 const的实参变量,也可以接受非const实参变量,权限只能缩小不能放大。

4、const修饰成员变量

表示为成员常量,不能修改,同时他只能在初始化列表中赋值。

5、const修饰成员函数

const成员函数表示不能修改this指针,所指向对象的成员变量也不可以修改,const修饰类成员函数实际上是:const 类类型 *const this,

class data { public: void display()const { ...; } //实际写法 void display(const data *const this) { ...; }