指针的引用做函数的参数
生活随笔
收集整理的這篇文章主要介紹了
指针的引用做函数的参数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <iostream>using namespace std;
// 二級(jí)指針的使用 [11/24/2017 Andrew]struct Teacher
{char name[64];int age;
};
// 在被調(diào)用函數(shù)中獲取資源必須使用二級(jí)指針,因?yàn)榫植亢瘮?shù)
//中申請(qǐng)的變量會(huì)在函數(shù)調(diào)用結(jié)束的時(shí)候被釋放掉,因此要使用二級(jí)指針 獲取申請(qǐng)內(nèi)存的實(shí)際地址
//這樣就算局部函數(shù)申請(qǐng)結(jié)束的時(shí)候,也能夠得到想要的內(nèi)存空間
int getTeacher(Teacher **p) //傳進(jìn)來(lái)的指針是傳值,多以編譯器會(huì)從新申請(qǐng)一個(gè)指針,只不過(guò)跟原來(lái)的指針指向同一個(gè)內(nèi)存區(qū)域
//會(huì)被編譯但是新的指針的改變并不會(huì)改變?cè)瓉?lái)指針值,只能通過(guò)指針改變指針指向的值,反過(guò)來(lái)要想改變指針必須使用指向指針的指針{Teacher *temp = NULL;if( p == NULL ){return -1;}temp = (Teacher *) malloc(sizeof(Teacher));if(temp == NULL){return -2;}temp ->age =33;//通過(guò)修改實(shí)參的地間接的修改實(shí)參的值*p = temp;return 0;
}
//C++中的指針的引用 ,做函數(shù)參數(shù)int getTeacher2(Teacher * &myp)
{//因?yàn)槭褂玫氖且?#xff0c;因此給myp賦值就相當(dāng)于給main函數(shù)中的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語(yǔ)言中的二級(jí)指針 [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;
}
總結(jié)
以上是生活随笔為你收集整理的指针的引用做函数的参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 聚数引智,承德大数据产业对接交流会将于2
- 下一篇: 作者:包阳(1978-),男,北京系统工