指针的引用做函数的参数
生活随笔
收集整理的這篇文章主要介紹了
指针的引用做函数的参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>using namespace std;
// 二級指針的使用 [11/24/2017 Andrew]struct Teacher
{char name[64];int age;
};
// 在被調用函數中獲取資源必須使用二級指針,因為局部函數
//中申請的變量會在函數調用結束的時候被釋放掉,因此要使用二級指針 獲取申請內存的實際地址
//這樣就算局部函數申請結束的時候,也能夠得到想要的內存空間
int getTeacher(Teacher **p) //傳進來的指針是傳值,多以編譯器會從新申請一個指針,只不過跟原來的指針指向同一個內存區域
//會被編譯但是新的指針的改變并不會改變原來指針值,只能通過指針改變指針指向的值,反過來要想改變指針必須使用指向指針的指針{Teacher *temp = NULL;if( p == NULL ){return -1;}temp = (Teacher *) malloc(sizeof(Teacher));if(temp == NULL){return -2;}temp ->age =33;//通過修改實參的地間接的修改實參的值*p = temp;return 0;
}
//C++中的指針的引用 ,做函數參數int getTeacher2(Teacher * &myp)
{//因為使用的是引用,因此給myp賦值就相當于給main函數中的pt1賦值myp = (Teacher *) malloc(sizeof(Teacher));if( myp == NULL ){return -1;}myp ->age =36;return 0;}
void FreeTeacher(Teacher *pt)
{if(pt == NULL){return ;}free(pt);
}
int main()
{Teacher *pt1= NULL;// 1 C語言中的二級指針 [11/24/2017 Andrew]getTeacher(&pt1);cout << "age :" << pt1->age << endl;FreeTeacher(pt1);// 2 C++中的指針的引用 [11/24/2017 Andrew]getTeacher2(pt1);cout << "age :" << pt1->age << endl; FreeTeacher(pt1);system("pause"); return ·120;
}
總結
以上是生活随笔為你收集整理的指针的引用做函数的参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聚数引智,承德大数据产业对接交流会将于2
- 下一篇: 作者:包阳(1978-),男,北京系统工