#include<iostream>
using namespace std;
struct Teacher
{
char name[64];
int age;
};
//在被调用函数去获取一个内存块
int getTeacher(Teacher **p)
{
Teacher *tmp = NULL;
if (p == NULL)
{
return -1;
}
tmp = (Teacher *)malloc(sizeof(Teacher));
if (tmp == NULL)
{
return -1;
}
tmp->age = 33;
//p是实参的地址,*实参的地址 去间接的修改实参的值
*p = tmp;
}
//指针的引用做函数参数---
int getTeacher2(Teacher* &myp)//理解成int* &tmp
{
//给myp赋值,相当于给main函数中的pt1赋值
myp = (Teacher* )malloc(sizeof(Teacher));
if (myp == NULL)
{
return -1;
}
myp->age = 36;
}
void FreeTeacher(Teacher *pT1)
{
if(pT1 == NULL)
{
return;
}
free(pT1);
}
int main()
{
//引用的本质 间接赋值的后两个条件c++编译器帮我们做了
Teacher *pT1 = NULL;
//1:C语言中的二级指针
getTeacher(&pT1);
cout<<"pT1.age:"<<pT1->age<<endl;
FreeTeacher(pT1) ;
//c++中指针的引用
getTeacher2(pT1);
cout<<"pT1.age:"<<pT1->age<<endl;
FreeTeacher(pT1);
system("pause");
return 0;
}
6.1指针的引用
猜你喜欢
转载自blog.csdn.net/QQ960054653/article/details/54773499
今日推荐
周排行