#2
rjsp2023-04-06 14:12
|
程序代码:
typedef struct Role
{
string Name;
int Hp;
int Mp;
} *Prole;
Role CreatMonster(string str, int hp, int mp)
{
Role ghost{ str,hp,mp };
return ghost;
}
int main()
{
Role ghost{ CreatMonster("A",1000,1000) };
std::cout << ghost.Name;
system("pause");
}
请问,1.为什么这里第10行返回值时ghost,它是一个局部变量,这段代码还能运行,局部变量不是遇到括号就结束了吗?
2.这种方式返回ROLE,跟返回值Prole,有什么区别吗?返回Prole比它好在哪里呢
返回Prole
程序代码:
Prole CreatMonster(string str, int hp, int mp)
{
Prole ghost = new Role{ str,hp,mp };
return ghost;
}
我觉得同样是申请一块内存,在减小开销上并没有区别