返回Prole比它好在哪里呢
程序代码:
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; }
我觉得同样是申请一块内存,在减小开销上并没有区别