指针的引用
C语言中的二级指针
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 -2; } tmp->age = 33; // p是实参的地址 *实参的地址 *p = tmp; return 0; }
C++中指针的引用
int getTeacher2(Teacher* &myp) { //给myp赋值 相当于给main函数中的pT1赋值 myp = (Teacher *)malloc(sizeof(Teacher)); if(myp == NULL) { return -1; } myp->age = 34; return 0; } void FreeTeacher(Teacher *pT1) { if(pT1 == NULL) { return ; } free(pT1); } int main(void) { Teacher *pT1 = NULL; //1 C语言中的二级指针 getTeacher(&pT1); cout << "age:"<<pT1->age<<endl; FreeTeacher(pT1); //2 C++中的引用 (指针的引用) //引用的本质 间接赋值后2个条件 让C++编译器帮我们程序员做了 getTeacher2(pT1); cout << "age:"<<pT1->age<<endl; FreeTeacher(pT1); cout <<"hello..."<<endl; return 0; }
运行结果:
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并,获取更多隐藏干货,QQ交流群:859800032 微信公众号:Crystal软件学堂
作者:Liu_Jing bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |