代码改变世界

常量引用

2013-08-20 17:11  北漂男孩  阅读(616)  评论(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;

 

 

http://wenku.baidu.com/view/3f510d3887c24028915fc3d2.html