您的位置:首页 > 编程语言 > C语言/C++

指针和引用操作符的区别

2013-12-19 00:23 316 查看
Original URL:http://blog.csdn.net/acosoft/article/details/4447196

指针和引用是相似的概念,但并不是相同的。它们都是指向一个对象,但是指针可以允许这个指向随时变化,并且它允许你指向一个空对象。引用可不一样,引用在初始时就必须指向一个对象,并且这个指向永远不能变化,也就是说永远只能指向这个对象,不能改变。可以这么理解,指针是一个变量的指向,引用是一个常量的指向。
指针和引用在操作上也有区别,指针使用操作符* 和-> ,引用使用操作符& 和. (点)。
比如,在定义时他们使用不同的操作符:
定义指针: int  *number ;   // 可以不初始赋值
定义引用: string s = “hangcool” ; 
string&  ps = s ;   // 必须初始赋值,这样ps 就指向了s 。
在指向一个变量的成员时使用不同的操作符:
指针指向:x->y ;     // 指向x 指针的成员y ;
引用指向:x.y ;       // 指向x 引用的成员y ;
当然我们也可以这样写:(*x).y 等价于 x->y 。
在指针的概念里必须清楚,x 代表指向某个地址的地址值,*x 代表指向某个地址的变量值。
 
另外,除了在定义指针和引用的地方用到* 和& ,它们还有一个重要的用途:
在变量前使用* 和& 它们有不同的含义:
* : 称作 引用操作符 。 它表示要取的是表达式所表示的地址指向的内容。它可以被翻译为“… 指向的数值” ("value pointed by") 。
比如,* mypointer 可以被读作“mypointer 指向的数值”。
& : 称作 地址或反引用操作符 。它被用作一个变量前缀,可以被翻译为“… 的地址”("address of") ,
比如,&variable1 可以被读作 variable1 的地址。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ C 指针 引用