随笔 - 25  文章 - 29  trackbacks - 0
<2006年5月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(4)

随笔分类(22)

随笔档案(25)

文章分类(2)

文章档案(2)

相册

最新随笔

搜索

  •  

积分与排名

  • 积分 - 55870
  • 排名 - 402

最新评论

阅读排行榜

评论排行榜

   int & != int
   ////引用是一种类型
   const int ==int
///const 修饰 在非引用 和 指针 情况下  不改变类型
   const int &  != int &
   const int *   !=int *   ////只有 const 类型 指针能接受 const 类型 地址
  非引用类型 必须精确匹配
   float  i=2.22f;
   int & p= i;///error
 const int & p=i;//ok,零时对象,也就是说其可以接受 个右值或 不匹配类型
   特别需要注意 非const引用必需 是个精确匹配的左值
如 
   const int a=100;
   const int * & p=& a//error,& a是 const int * , 但其地址是个右值,只有 const 才能接受右植
   const int * const & p= &a//ok;不是对“const”的引用不能绑定到非 lvalue
  int a=10;
int *& b=&a///错误
int *const & b=&a;//ok
但 char * a="good";//"good" 是const char [5]类型---->const char* 但  是 a是char* ;这个是编译器的例外
 
引用:没有指针语法的指针,非const引用只能接受左值
指针的引用相当于一个指针的指针,常用于函数参数中来改变指针本身的值(外部同时也改变)

       void f(int *&p)
{
p=new int [5];//外部也改变了
}
             void f(int **p)
{
*p=new int [5];//外部也改变
}
                void f(int * p)
{
p=new int [5];//外部不改变
}
非const 指针都可以给void *;
void *p =(int) 0x3444;
posted on 2006-05-27 14:21 黄大仙 阅读(1204) 评论(1)  编辑 收藏 引用 所属分类: c++

FeedBack:
# re: const 和 引用  2007-07-01 18:46 我不知
我还想问一下怎么说只有const才能接受右值  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理