首页 > 其他 > 详细

引用:&(reference)与间接引用:*(dereference)

时间:2014-03-10 21:27:43      阅读:619      评论:0      收藏:0      [点我收藏+]

1.  符号 &(reference),表示".....的地址"("address of"),因此成为地址操作符(adress operator),又称引用操作符(reference operator)。例如:

foo = &myvar;

 

 

将变量myvar的地址赋给变量foo,因为当在变量名称myvar 前面加ampersand (&) 符号,foo指的将不再是该变量的内容,而是它在内存中的地址。在程序运行之前,变量的内存地址是不可知的,但为了便于理解,我们假设myvar的内存地址是1776。然后我们看下列代码:

myvar = 25;

foo = &myvar;

bar = myvar;

 

 

 

 

各自变量的存储值如下图所示:


bubuko.com,布布扣

 

 

存储其它变量地址的变量(如上面例子中的foo ),我们称之为指针(pointer)。在C++ 中,指针pointers 有其特定的优点,因此经常被使用。在后面我们将会看到这种变量如何被声明。

2.  符号 *(dereference),表示".....所指向的值"("value pointed to by"),看下面的声明:

baz = *foo;

 

 

可以读作:baz等于foo所指向的值。baz的值变为25,因为foo存储的是内存地址1776,而*foo指的是内存地址1776指向的值,即25。


bubuko.com,布布扣

 

注意加或不加星号*的不同(下面代码中注释显示了如何读这两个不同的表达式):

beth = ted; // beth 等于 ted ( 1776 )

beth = *ted; // beth 等于 ted 所指向的数值 ( 25 )

引用:&(reference)与间接引用:*(dereference),布布扣,bubuko.com

引用:&(reference)与间接引用:*(dereference)

原文:http://www.cnblogs.com/guozqzzu/p/3592011.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!