美文网首页
C、C++ const

C、C++ const

作者: Kael_Zhang的安卓笔记 | 来源:发表于2023-03-09 09:43 被阅读0次

const很重要,也很难用!

const是衡量一个程序员是否老道的一个标准,它除了可以修饰变量之外,还可以修饰函数

const修饰变量(常量,可读不可写)

TYPE const ValueName = value; 
const TYPE ValueName = value;

const修饰引用

const TYPE & ValueName = value;

const 引用的目的是,禁止通过修改引用值来改变被引用的对象,const变量不能绑到非const引用!

const修饰指针

  • 指针本身是常量不可变
(char*) const pContent; 
const (char*) pContent;
  • 指针所指向的内容是常量不可变
const (char) *pContent; 
(char) const *pContent;
  • 两者都不可变
const char* const pContent;

还有其中区别方法,沿着号划一条线:
如果const位于
的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

const修饰函数

const int& fun(int& a); //修饰类的成员返回值(比如:类的getter方法)
int& fun(const int& a); //修饰形参(比如:类的setter方法)
int& fun(int& a) const{} //const成员函数
  • 修饰类的成员返回值
    这种多是修饰返回值是引用类型的情况下,为了避免返回值被修改的情况,返回值使用引用多半减少内存拷贝,没有这方面的考虑,直接返回值也是一样的
  • 修饰形参
    形参使用引用,可以减少内存拷贝,节省内存,并且可以起到改变实参的目的。不过有的时候我们并不希望改变实参的值,就要加上const关键字
  • const 成员函数中不能对该类的任何成员变量进行修改,const成员函数中不能调用该类的非const成员函数

相关文章

网友评论

      本文标题:C、C++ const

      本文链接:https://www.haomeiwen.com/subject/mhkoldtx.html