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; }
運行結果:spa