12. 返回指针

创建日期:2024-07-14
更新日期:2025-02-01

returnptr.cpp

#include <iostream>
#include <cstring>

struct Person
{
    char *name;
    int age;
};

int *retInt();
int *retArr();
const char *retStr1();
std::string *retStr2();
Person *retStruct();

int main()
{
    using namespace std;

    // int n = *retInt();
    // cout << "n = " << n << endl;

    // int *arr = retArr();
    // cout << "arr = " << arr[0] << endl;

    const char *str1 = retStr1();
    cout << "str1 = " << str1 << endl;

    // string str2 = *retStr2();
    // cout << "str2 = " << str2 << endl;

    // Person p = *retStruct();
    // cout << "p.name = " << p.name << ", p.age = " << p.age << endl;
}

int *retInt()
{
    int a = 10;
    return &a;
}

int *retArr()
{
    int arr[3] = {1, 2, 3};
    return arr;
}

const char *retStr1()
{
    const char *s = "hello";
    return s;
}

std::string *retStr2()
{
    std::string s = "hello";
    return &s;
}

Person *retStruct()
{
    Person p = {"xiaoming"};
    return &p;
}