今天来给大家分享C++的const用法,非常简单,希望能对广大网友有帮助。
先说方法,牢记以下三点,带const的代码,一眼识别:
const的用法:
①当const的左边有东西时,就修饰左边的东西,当const左边没有东西时,就修饰右边的东西;
②当const修饰的是*时,则指针变量的指向不能被改变,指针变量指向的内存的值可以被改变;
③当const修饰的是类型时,则该变量的值不能被改变,若该变量是指针变量,则指针变量指向的内存的值不能被改变,指针变量的指向可以被改变。
接下来看例1:
#include <iostream>
using namespace std;
int main()
{
const int k = 0;//const左边没有东西,修饰右边的int类型
//k =1; //编译错误,const修饰int类型,变量k的值不能被改变
int const kl = 0;
//k1 = 2; //编译错误,const修饰int类型,变量k1的值不能被改变
int p = 1, q = 5;
int const* p1 = &p;
//*p1= 2; //编译错误,const修饰int类型,指针变量p1指向的内存的值不能被改变
p1 = &q; //编译通过,const修饰int类型,指针变量p1的指向可以被改变
int* const p2 = &p;
*p2 = 3; //编译通过,const修饰*,指针变量p2指向的内存的值可以被改变
//p2=&q; //编译错误,const修饰*,指针变量p2的指向不能被改变
const int* p3 = &p; //const左边没有东西,修饰右边的int类型
//*p3 = 4; //编译错误,const修饰int类型,指针变量p3指向的内存的值不能被改变
p3 = &q; //编译通过,const修饰int类型,指针变量p3的指向可以被改变
const int* const p4 = &p; //或者写成 int const * const p4 = &p;
//*p4 = 4; //编译错误,第一个const修饰int类型,第二个const修饰*,指针变量p4的指向不能被改变,指针变量p4指向的内存的值不能被改变
//p4 = &q; //编译错误,第一个const修饰int类型,第二个const修饰*,指针变量p4的指向不能被改变,指针变量p4指向的内存的值不能被改变
return 0;
}
再来看例2:
void MyClass::testfunc() const
{
//MyClass是一个类,testfunc是该类的成员函数,imyc是该类中int类型成员函数
//在该函数中修改类成员变量的值:
//imyc = 5;//编译错误,const修饰类成员函数,则在该函数中,不可更改该类的成员变量的值
}
最后来看例3:
const int* func1()
{
int* ik = new int(5);
return ik;
}
//讲解:
//func1函数的返回值为const int*类型,
//const修饰int类型,所以该返回值(即int*指针指向的内存)的值是不能被改变的。
以上就是本次的分享了,欢迎大家一起评论学习。
此博主在CSDN发布的文章目录:【我的CSDN目录,作为博主在CSDN上发布的文章类型导读】