C++ 常量指针、指针常量、引用和常引用的用法解析

今天学习C++的常量类型和引用,其中常量指针、指针常量、引用和常引用几个概念较为接近,特地整理一下。

 

1.常量指针(pointer to const)

 

常量指针,顾名思义,是指向常量的指针,其定义的一般形式为:const T * pointer_name =⌖ T为数据类型,target为T类数据。

常量指针本身是可变量,而且,虽然名为常量指针,但其指向可以是变量,只不过,从常量指针的角度看,它所指向的量是不可变的,也就是说不能通过该指针对其指向的变量进行修改。所以准确的说,常量指针,意思是在这个指针眼里,它所指向的量是不可改变的常量。

 在使用过程中,指向变量的指针,可以向常量指针赋值,只不过赋值之后不能通过常量指针对该变量进行修改。而常量指针不能向指向变量的指针赋值,因为并不能确定常量指针指向的数据是否可以被修改,容易产生安全性问题。常量指针的主要用法在于保护输入的形参,当输入的形参通过指针传递的时候,最好采用常量指针,以防止不小心对输入的形参进行了修改。

 

2.指针常量(const pointer)

 

 指针常量,即为const类型的指针,指针本身的指向不可以改变,定义形式:

 T *const pointer_name =⌖ T为数据类型,target为T类数据,且为变量。

由于是const类型,所以必须在定义的时候进行初始化并在之后不能更改。但是其所指向的是变量,可以修改。即指针常量本身不能改变,但是可以改变其所指向的变量。

 如果将指针变量和变量指针结合起来,得到常量指针常量,则指针和所指向的量均不可修改。

3.引用(reference or alias)

 引用,是用作对象的别名。其定义形式为:

T&reference_name =target; T为数据类型,target为T类数据

引用在一定程度上可以取代指针,主要用作函数的形参。引用必须在初始化的时候确定被引用的的对象,一旦确定引用对象则不可更改。这一点和指针常量类似。不过存在例外,当引用作为类的成员变量和函数形参定义时,不必进行初始化。同时引用初始化的对象必须为可以被赋值的左值。在函数形参通过指针传递时,可以使用引用来实现同样的功能,并且引用的指向不会发生变化,因此更加安全。

4.常引用(constant reference)

 常引用即的被引用对象不可通过常引用改变,性质与常量指针类似,可以用来保护函数输入形参不发生变化。其定义为:constT &reference_name =target; T为数据类型,target为T类数据。同时常引用的引用对象可以守任意表达式,不局限于左值。

 

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值