1. 程式人生 > >c++裡面指標的引用作函式引數

c++裡面指標的引用作函式引數

指標的引用,c++裡面的指標的引用。
相當於c語言裡面的二級指標。

#include <stdlib.h>
using namespace std;
//函式返回值作左值

//指標的引用
//回憶二級指標

struct Teacher
{
        char name[20];      
        int age;        
};

//在被呼叫函式獲取資源
//*p=&tp1

//函式指標作引數:在被呼叫函式裡面給指標分配記憶體



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是實參的地址,*實參的地址 去間接的,去間接的修改實參的值 //將tmp的值賦給*p *p=tmp; } //指標的引用作函式引數 int getTeacher1(Teacher* &myvar) { //給myvar賦值,相當於給main函式中的tp1指標
myvar=(Teacher *)malloc(sizeof(Teacher)); if(myvar ==NULL) { return -1; } myvar->age=36; } void freeTeacher(Teacher * tp1) { if(tp1 == NULL) { return ; } free(tp1); } int main(int argc,char *argv[]) { //實參的值為空,在棧區分配 tp1是一個地址。
Teacher *tp1=NULL; getTeacher(&tp1); //將地址的地址傳入進去 cout<<"age="<<tp1->age<<endl; freeTeacher(tp1); getTeacher1(tp1); //將地址的地址傳入進去 cout<<"age="<<tp1->age<<endl; freeTeacher(tp1); //c語言中的二級指標(c++裡面的指標引用) return 0; }