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;
}