const可以修饰变量,修饰函数的参数、返回值,甚至函数的定义体。
1.const修饰函数的参数
const可以修饰传入参数,防止传入参数被修改,起到保护的作用。
但是如果是“值传递”,则无需用const修饰。因为函数会自动产生临时变量用于复制该参数。
void func(int x){}//就不用写成void func(const int x)
对于非内部数据类型的参数而言,像void func(A a)这样的函数声明效率比较低。因为调用函数时将会产生A类型的临时对象用于复制参数a,而在临时对象的构造,复制和析构过程都需要时间,效率较低。通过传入引用可以提高函数的效率,函数声明可以写成这样void func(A &a),引用只是给变量起一个别名,不需要产生临时对象。但是传入引用可以修改参数,这是我们不希望看到的,所以我们应该采用const类型的引用,如void func(const A &a)。
2.const变量
const变量和普通变量可以相互初始化
const int a = 10;
int b = 20;
int c = a;
const int d = b;
const变量的引用和指针可以用const变量或者普通变量初始化,但是普通变量的引用和指针只能用普通变量来初始化。
const int a = 10;
int b = 10;
const int &c = a;
const int &d = b;
int &e = b;
int &e = a;//错误
本文探讨了C++中const关键字的应用,包括如何使用const修饰函数参数以防止其被修改,以及const变量的使用。指出对于非内部数据类型,使用const引用可以提高效率并避免不必要的对象复制。同时,介绍了const变量的初始化规则,强调const变量的引用和指针可以由const或非const变量初始化,反之则不行。

802

被折叠的 条评论
为什么被折叠?



