赞
踩
&在变量定义区,表示引用 int &x ;
&在变量操作区,表示取地址符 int x=10, *p=&x ;
*在变量定义区,表示指针 int *x ;
*在变量操作区,表示解引用 int *x ;cout<<*x ;
注意:只有对指针的引用,没有指向引用的指针!(因为引用本身不是对象)
具体使用起来原理是相同的,请看代码:
void onePointerFunc(int *pMyClass)
{
pMyClass = new int;
}
调用:
int* p = new int;
onePointerFunc(p);
调用onePointerFunc
后,p没有指向新的对象。
void poiPointerFunc(int** pMyClass)
{
*pMyClass = new int;
}
调用:
int* p =new int;
poiPointerFunc(&p);
调用poiPointerFunc
之后,p指向新的对象。
void refPointerFunc(int *&pMyClass)
{
pMyClass = new int;
}
调用:
int* p = new int;
refPointerFunc(p);
调用refPointerFunc
之后,p指向新的对象。
其实,指针的引用和指针的指针是一码事,只是语法有所不同。传递的时候不用传p的地址&p,而是直接传p本身。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。