引用的规则:
。。。。。。。。。。。。。。。。。。。P147
const限定引用:
。。。。。。。。。。。。。。。。P151
引用传递(引用作为函数参数):
。。。。。。。。。。。。。。。。。。。。。。。。P148
函数返回引用:P150
#include<iostream>
using namespace std;
int * & afun(void);
int main()
{
int *pa = afun();
cout<<"in main "<<*pa<<endl;
cout<<pa<<endl;
cout<<endl<<endl;
int *pb = afun();
cout<<"in main "<<*pa<<endl;
cout<<pb<<endl;
*pb = 6666;
cout<<"*pa="<<*pa<<"\t"<<"*pb="<<*pb<<endl;
delete pa;
delete pb;
cout<<"*pa="<<*pa<<"\t"<<"*pb="<<*pb<<endl;
return 0;
}
int * & afun(void)
{
<span style="white-space:pre"> </span>int *p = new int;
cout<<"in afun "<<p<<endl;//每次调用afun 得到的地址都是不一样的,这样就ok 了。
*p = 9999;
int *&rp = p;
return rp;
}
//结果如下:
in afun 0x8d55008
in main 9999
0x8d55008
in afun 0x8d55018
in main 9999
0x8d55018
*pa=9999 *pb=6666
*pa=0 *pb=148197376