返回值为引用 我晕了.......
#include <string.h>
#include <iostream>
using namespace std;
int & fun()
{
int *p1=new int; //在内存中分配一个整数变量的大小,地址赋值给p
if(!p1) //如果分配不成绩
{
cout<<"Error,Memory allocation failture!"<<endl;
exit(0);
}
int &rp=*p1; //若分配成绩,定义rp是p指向空间的引用
rp=5; // 即 *p=5
return rp; //返回rp,即返回*p
}
int main(){
int & rp=fun(); //定义函数的引用
int *p=&rp; //定义指针,赋值为rp的指针
cout<<*p<<endl; //输出rp的值,即fun()的值
// 上一条语句的调用相当于: cout<<fun()<<endl;
//因为返回值为引用,又相当于 cout<<rp<<endl;(此rp为fun()函数中的rp)
delete p; //释放p指针指向的空间
*p=10; //给rp赋值 000000... 不懂哇 都删除了的 咋还可以赋值
cout<<rp; //输出rp的值
return 0;
}