c++指針函數(shù)的定義及用法

c++
小億
90
2023-12-28 07:18:21
欄目: 編程語言

C++中的指針函數(shù)是返回指針的函數(shù)。它可以返回指向任何數(shù)據(jù)類型的指針,包括基本數(shù)據(jù)類型、自定義數(shù)據(jù)類型、數(shù)組等。

指針函數(shù)的定義形式如下:

返回類型* 函數(shù)名(參數(shù)列表) {
    // 函數(shù)體
}

其中,返回類型表示函數(shù)返回的指針類型,*表示指針類型的標(biāo)識(shí)符,函數(shù)名是函數(shù)的名稱,參數(shù)列表是函數(shù)可以接受的參數(shù)。

指針函數(shù)的用法如下:

  1. 返回指向基本數(shù)據(jù)類型的指針:
int* getNumber() {
    int* ptr = new int;
    *ptr = 10;
    return ptr;
}

int main() {
    int* numPtr = getNumber();
    cout << *numPtr << endl;  // 輸出:10
    delete numPtr;
    return 0;
}
  1. 返回指向自定義數(shù)據(jù)類型的指針:
struct Person {
    string name;
    int age;
};

Person* createPerson(string name, int age) {
    Person* ptr = new Person;
    ptr->name = name;
    ptr->age = age;
    return ptr;
}

int main() {
    Person* personPtr = createPerson("Alice", 20);
    cout << personPtr->name << endl;  // 輸出:Alice
    cout << personPtr->age << endl;   // 輸出:20
    delete personPtr;
    return 0;
}
  1. 返回指向數(shù)組的指針:
int* createArray(int size) {
    int* arr = new int[size];
    for (int i = 0; i < size; i++) {
        arr[i] = i + 1;
    }
    return arr;
}

int main() {
    int* arrPtr = createArray(5);
    for (int i = 0; i < 5; i++) {
        cout << arrPtr[i] << " ";  // 輸出:1 2 3 4 5
    }
    delete[] arrPtr;
    return 0;
}

需要注意的是,在使用完指針函數(shù)返回的指針后,需要手動(dòng)釋放內(nèi)存,以防止內(nèi)存泄漏??梢允褂?code>delete釋放單個(gè)指針指向的內(nèi)存,或者使用delete[]釋放指向數(shù)組的指針指向的內(nèi)存。

0