C++指针的引用
来源:互联网 发布:淘宝买港版ipad 编辑:程序博客网 时间:2024/06/05 10:30
// 指针的引用.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;struct Teacher{char name[64];int age;};int GetTeacherAge(Teacher* *p)//指针p在内存中的地址{Teacher *tmp = NULL;if (p == NULL){return -1;}//tmp = (Teacher *)malloc(sizeof(Teacher));//这句话就是分配内存空间//C语言malloctmp = new Teacher ();//等价于上面的语句//C++用newif (tmp==NULL){return -2;}tmp->age = 33;*p = tmp;// p的值是一个地址,*p就是修改这个地址里面的值//因为p是二级指针所以*p储存的也是一个地址所以将tmp指针赋值给*p//如果不写着句下边的pt就无法指向tmp return 0;}//利用指针的引用int GetTeacherAge2(Teacher* &myp)//函数参数为指针{//给myp赋值就相当于给mian函数中的pt赋值myp = new Teacher();//给指针分配内存空间if (myp ==NULL){return -1;}myp->age = 36;}void FreeTeacher(Teacher *pt){if (pt==NULL){return;}free(pt);//将指针所指向的内存空间删掉}//常引用void CoutTeacherAge(const Teacher &myp1){//常引用,使参数变量拥有了只读属性//myp1.age = 32;//这一句就会报错,因为不能修改//除了const int &x = y;这种以变量为右值的定义方法还有//const int &x = 40;这种方法也可以,这种方法给x自动分配了内存空间,因为是常引用//int &x = 40;就会报错,因为40是值没有内存空间cout << "myp1:" << myp1.age << endl;}int main(){Teacher *pt;GetTeacherAge(&pt);cout << "age: " << pt->age << endl;FreeTeacher(pt);GetTeacherAge2(pt);cout << "age: " << pt->age << endl;FreeTeacher(pt); return 0;}
0 0
- [C++] 引用和指向指针的引用
- [C] 指针参数的引用
- c/c++指针的引用
- c的指针*和引用&
- 【C++】指针&引用的区别
- 【C/C++】引用和指针的区别
- 【C/C++】指针与引用的区别
- 详解c++[指针的指针] 和 [指针的引用]
- c/c++ 的 指针的解引用
- 指针与引用的区别 (MoreEffictive C++)
- [C++]指针和引用的比较小结
- java引用与C指针的异同
- C/C++ 指针与引用的区别
- c++和c的指针及引用
- 指针和引用的区别(C++)
- 【学习】C++(2)指针的引用
- C程序设计语言--指针和引用的区别
- 【C++】指针与引用的区别
- java基础学习之函数 三
- oracle特有分析函数
- cocos2dx 函数作为参数进行传递和调用(std::function跟CC_CALLBACK_1的使用)
- PowerDesigner:导入SQL脚本
- python将日志导入数据库代码案例 3
- C++指针的引用
- 其实你不知道MultiDex到底有多坑
- 进程间通信的几种方式:管道、信号、消息队列、共享内存
- 在Linux里设置环境变量的方法(export PATH)
- 设置eclipse编码方式
- js中数组的创建和删除
- PHP书籍推荐TOP10排行榜
- iOS push时 tabbar隐藏的问题
- java分页查询接口的实现