C++ 指针的引用做函数参数

#include<iostream>
using namespace std;
struct Teacher
{
	char name[64];
	int age;
};
//二级指针做函数参数  
//在被调用函数,获取资源
int getTea(Teacher **p)
{
	Teacher* tmp = NULL;
	if (p == NULL)
	{
		return -1;
	}
	tmp = (Teacher*)malloc(sizeof(Teacher));
	if (tmp == NULL)
	{
		return -2;
	}
	tmp->age = 45;
	//p是实参的地址    *实参的地址 去间接地修改实参的值
	*p = tmp;
}
//指针的引用  做函数参数
int getTea1(Teacher * &p)
{
	p = (Teacher*)malloc(sizeof(Teacher));
	if (p == NULL)
	{
		return -1;
	}
	//给p赋值  相当于给main函数中的pt1赋值
	p->age = 9;
}
void freeTea(Teacher *p)
{
	if (p = NULL)
	{
		return;
	}
	free(p);
}
int main()
{
	Teacher *pt;
	Teacher *pt1;
	getTea(&pt);
	cout << "age="<<pt->age<< endl;
	freeTea(pt);

	getTea1(pt1);
	cout << "age1="<<pt1->age<< endl;
	freeTea(pt1);
	system("pause");
}

猜你喜欢

转载自blog.csdn.net/error0_dameng/article/details/81836285