常量引用
2013-08-20 17:11 北漂男孩 阅读(619) 评论(0) 编辑 收藏 举报
#include <iostream> void disp(const int &a) { cout<<a<<endl; } void main() { int x=1; disp(x); }
讲函数的形参定义为常量引用的好处:
1、引用不产生新的变量,减少形参和实参之间转换时的开销。
2、由于引用可能导致实参随形参的改变而改变,将其定义为常量引用后可以消除这种现象。
int const &p=x;
p++ ;是错的 x++对的
常量引用只能读取,不能修改。
#include <iostream>
void disp(const int &a)
{
cout<<a<<endl;
}
void main()
{
int x=1;
disp(x);
}
总结:如果要求实参随形参的改变而改变,则用一般的引用,如果实参随形参的改变而改变则使用常量引用,类的复制函数正是利用了这一点实现对象之间的复制。
main()
{
int x=10;
int *p;
p=&x; 把x的地址赋值给指针p,使p指向x
printf("%d",*p); 、、10
}
分析:可以看出通过指针访问它所指向的变量。
const定义指针常量(禁止改写指针)
类型名* const 指针名=&变量名 int *p=&x;
作用:定义一个指针常量p,使p指向x,我们不能修改指针p使它指向其他指针。
但x的值可以改变
*p=*p+5;
禁止改写指针所指向的变量:
int x,y;
const int *p;
p=&a;p=&y;
作用:定义一个指针变量p,p可以随便指,但是所指向的变量的值不能随便更改。
void main()
{
int x=1;y=2;
const int *p=&x;
*p=*p+5; 错
x=x+5;
p+&y;
}
3、禁止改写指针和它所指向的变量:
const 类型名 *const 指针名=&变量名
int x,y;
const int *const p=&x;