const使用


一、 普通变量用const

//表示n本身不可修改,是常量
const int n =1

二、 指针用const

//用法1:表示不可以通过指针pt修改a,但是a可修改
int a = 3;
const int * pt = &a;

//用法2:a本身不可修改,因此也不可以通过指针修改a,如果指针没有const会报错
const int a = 3;
const int *pt = &a;

//用法3:表示指针pt的值不可以修改,pt初始化时需要绑定一个地址,之后不可修改,和这个地址绑定
int a = 4;
int * const pt = &a;

三、函数返回值加const(对指针和引用有意义)

//用法1:返回引用值加const:表示返回的引用值的内存空间不可修改,即无法出现
//foo(a, b) = c的情况
const int &foo(int &a, int &b)

//**用法2:表示返回值是一个整型常量,但是这里使用const没有意义,这里函数会把返回值复制到外部的临时存储单元中,加const没有意义
const int foo(int a ,int b)

//用法3:这个时候表示不可使用返回的地址对内容进行修改
const int * foo(int a, int b)const int * a = foo(ads, df);

四、函数参数加const(仅对指针和引用有意义)

//两种情况:1.表示a和b(对应的数组)在函数内都不可修改;
//2.传入参数本身为const类型
void foo(const char * a , const int * b)

//常用点的引用搭配:就是这两个引用的对象值函数中不可修改
void foo(const A & a, const B & b)

五、函数后面加const

class P
{
public:
	int GetX() const; //常成员函数,不可改变成员变量的值
	int GetY() const;
	void Set(int, int);
	void Offset(int, int);
private:
	int xVal, yVal;
};

六、const * & *const

简单来说就是const* 指向的地址的值不允许修改,const* a 等价于 const (*a),而 *const则是告诉编译器这个指针变量指向的地址是确定的,指针不能改,但是指针指向的值可以改


七、其它

类似const int 的变量可以直接赋值给int,但是const int *的指针只能赋值给const int *的指针,指针情况和引用类似

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值