| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 378 人关注过本帖
标题:返回Prole比它好在哪里呢
只看楼主 加入收藏
后卿
Rank: 4
来 自:网络
等 级:业余侠客
威 望:1
帖 子:302
专家分:295
注 册:2016-10-22
结帖率:81.71%
收藏
已结贴  问题点数:1 回复次数:1 
返回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;
}

我觉得同样是申请一块内存,在减小开销上并没有区别
搜索更多相关主题的帖子: ghost 返回 str string int 
2023-04-06 12:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9024
专家分:54030
注 册:2011-1-18
收藏
得分:1 
1.为什么这里第10行返回值时ghost,它是一个局部变量,这段代码还能运行,局部变量不是遇到括号就结束了吗?
它返回的不是局部变量,而是局部变量的值。
打个比方:
绑匪强迫你在纸上写下了银行卡密码,绑匪看了一眼,把密码记在心里,走了。
你正为自己的懦弱而悔恨落泪之时,却突然注意到绑匪没有带走那张写有密码的纸条。
你一把抓过纸条把它烧成了灰,心里乐开了花。

返回Prole比它好在哪里呢
好个屁!
退一步说,脱离了实际情况,锤子和扳手哪个好?
2023-04-06 14:12
快速回复:返回Prole比它好在哪里呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039701 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved