C++入门篇:&与*的区别
&的作用:
&:在C++中有两种意思,一种是取地址符,是单目运算符;另一种是位运算符,表示“按位与”,是双目运算符。
&后跟一个变量。每个变量对应一个存储空间块。每个存储空间都有一个数字,即地址,&变量名表示取出该代码,而变量名表示取出该编号对应的存储空间中的值。
列如:
int a=3;(先定义一个变量a,a有一个存储空间块,我们让它的值为3,即空间块里面的值为3)
int &b=a;(这时候,&b可以看做一个整体,它指向a 的内存地址,b就是a的引用,即b=a=3)
*的作用:
系统将在内存中分配一个空间,* a的值是变量a的值;定义一个指向整数数据的指针,效果与&相反,它根据变量的地址获取变量的值,编译时给它分配一个地址,指针指向整数数据。
如图: