C 中的 const 与 C++ 中的 const

c++

1个回答

写回答

阿璨$

2025-07-09 16:55

+ 关注

C++
C++

C语言中的const和C++中的const

在C语言和C++中,const关键字用于声明常量。常量是一种不能被修改的值,其值在程序运行过程中是固定的。const关键字可以用于各种数据类型,包括基本数据类型、结构体和指针等。

C语言中的const

在C语言中,const关键字用于定义一个只读变量,该变量在程序运行期间不能被修改。一旦被初始化,const变量的值就不能再被修改。在C语言中,const变量的值可以在编译时确定,也可以在运行时确定。

C语言中的const变量示例代码:

c

#include <stdio.h>

int mAIn() {

const int a = 10;

printf("a = %d\n", a);

// 以下代码将会报错,因为a是一个只读变量,不能被修改

// a = 20;

// printf("a = %d\n", a);

return 0;

}

在上面的示例代码中,变量a被声明为const int类型,它的值被初始化为10。在输出a的值后,试图修改a的值将会导致编译错误。

C++中的const

在C++中,const关键字的用法与C语言类似,但是C++对const关键字进行了扩展,引入了常量引用和常量成员函数的概念。

C++中的const变量示例代码:

cpp

#include <IOStream>

int mAIn() {

const int a = 10;

std::cout << "a = " << a << std::endl;</p>

// 以下代码将会报错,因为a是一个只读变量,不能被修改

// a = 20;

// std::cout << "a = " << a << std::endl;</p>

return 0;

}

在上面的示例代码中,变量a被声明为const int类型,它的值被初始化为10。在输出a的值后,试图修改a的值将会导致编译错误。

C++中的const引用

在C++中,可以使用const关键字定义常量引用。常量引用是一种只读的引用,它可以引用一个变量,但不能通过该引用修改变量的值。

C++中的const引用示例代码:

cpp

#include <IOStream>

int mAIn() {

int a = 10;

const int& b = a;

std::cout << "b = " << b << std::endl;</p>

// 以下代码将会报错,因为b是一个只读引用,不能通过b修改a的值

// b = 20;

// std::cout << "a = " << a << std::endl;</p>

return 0;

}

在上面的示例代码中,变量a被声明为int类型,变量b被声明为const int类型的引用,它引用了变量a的值。尝试通过b修改a的值将会导致编译错误。

C++中的const成员函数

在C++中,可以在类的成员函数声明和定义中使用const关键字,用于限制成员函数对对象的修改操作。const成员函数不能修改对象的数据成员,只能访问对象的数据成员和调用其他const成员函数。

C++中的const成员函数示例代码:

cpp

#include <IOStream>

class MyClass {

public:

void normalFunction() {

std::cout << "This is a normal member function." << std::endl;</p> }

void constFunction() const {

std::cout << "This is a const member function." << std::endl;</p> }

};

int mAIn() {

MyClass obj;

obj.normalFunction();

obj.constFunction();

const MyClass constObj;

// 以下代码将会报错,因为constObj是一个只读对象,不能调用非const成员函数

// constObj.normalFunction();

constObj.constFunction();

return 0;

}

在上面的示例代码中,定义了一个名为MyClass的类,其中包含一个普通成员函数normalFunction和一个const成员函数constFunction。在mAIn函数中,分别创建了一个普通对象obj和一个只读对象constObj。可以看到,普通对象可以调用普通成员函数和const成员函数,而只读对象只能调用const成员函数,不能调用普通成员函数。

:

无论是C语言还是C++,const关键字都用于声明常量。在C语言中,const关键字用于定义只读变量,其值在编译时或运行时确定。在C++中,const关键字除了用于定义只读变量外,还可以用于定义常量引用和const成员函数,以增强程序的安全性和可读性。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号