C++中const的各种用法

 今天分享C/C++中的const关键字,这个关键字有着不少的作用,以下是const的几种主要用法:

一、修饰变量

1.定义常量:

const int num = 10;   这里 num 被const修饰定义成了一个常量整数,它的值在程序运行过程中不能被改变。

2.指向常量的指针:

const int* ptr;        指针指向一个常量整数,不能通过这个指针来修改它所指向的值。例如:

 

int a = 5;

const int * ptr = &a;

//*ptr = 6;  会报错,不能通过指针修改指向的常量值。

 

3.常量指针:

int * const ptr;        这个指针本身是常量,一旦初始化后不能再指向其它内存地址。例如:

 

int a = 5, b = 10;

int * const ptr = &a;

// *ptr = &b;   会报错,不能改变指针指向的地址

 

4.指向常量的常量指针:

const int * const ptr;        指针本身是常量且指向一个常量整数,既不能改变指针指向的地址,也不能通过指针修改指向的值!

 

二、修饰函数参数

1.防止参数被函数内部修改:

        比如        void func(const int arg);        在函数内部不能修改arg的值。

 

三、修饰函数返回值

1.返回常量值:

        例如        const int func();         表示函数返回一个常量整数,不能通过返回值修改这个值。

2.返回指向常量的指针:

const int* fuc();        函数返回一个指向常量整数的指针,不能通过这个指针修改所指向的值。

 

四、修饰类成员

1.常量成员变量:

在类中可以定义常量成员变量,但是必须在构造函数初始化列表中进行初始化,例如:

class Myclass{

public:

        const int num;

Myclass(int n) : num(n){}

};

 

2.常量成员函数:

int getValue() const;        表示这个成员函数不能修改类的成员变量。在常量对象上只能调用常量成员函数。例如:

class Myclass{

private:

        int value;

public:

        MyClass(int v) : value(v){}

        int getValue() const {return value;}

};

int main(void){

        const Myclass obj(10);

//obj.value = 20; 会报错,不能修改常量对象的成员变量

        int val = obj.getValue();        //可以调用常量成员函数

        return 0;

}

 

若有问题还望指出😘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值