Const参数,Const变量

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;//错误
发布了77 篇原创文章 · 获赞 23 · 访问量 7518

猜你喜欢

转载自blog.csdn.net/Hots3y/article/details/103121080