#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");
}
C++ 指针的引用做函数参数
猜你喜欢
转载自blog.csdn.net/error0_dameng/article/details/81836285
今日推荐
周排行