c++ - 如何使用 *pointer 从函数中获取第二个值?
问题描述
我有一个函数,我需要从那里获取两个值。函数只能返回一个值。我在某处读到我可以使用指针来获取第二个值,当我尝试这样做时出现错误,因此它看起来指针值不能超出可见区域。所以这意味着我只有一个值。如何使用指针从函数中获取第二个值?
解决方案
某种类型的实例是“一个值”。考虑这个类:
struct foo {
int bar;
double moo;
};
现在我可以编写一个返回该类型值的函数:
foo asdf() {
foo result;
result.bar = 42;
result.moo = 3.14159;
return result;
}
PS:不要使用指针。可以使用所谓的输出参数,但如果你这样做了,你应该使用引用而不是指针:
void asdf2(int& bar,int& moo) {
bar = 42;
moo = 3.14159;
}
像这样调用:
int x = 0;
double y = 0.;
asdf2(x,y);
但是,out 参数并不好,因为与 infoo f = asdf();
相比,从函数返回的内容更明显asdf2(x,y)
。
推荐阅读
- reactjs - React 和 TypeScript 中的“对象可能未定义”
- excel - 复制粘贴数据,然后对其进行排序,但出现错误
- c# - 删除子节点保留其父节点
- javascript - 重复相同的字母会影响函数 accum(s){ codewars
- javascript - 有争议的大数不可整除
- reactjs - 反应我想在动画结束时隐藏 div 标签
- android - 为什么不运行等待
- javascript - Thymeleaf 语法在 java 脚本文件中不起作用
- python - 如何永远循环使用for循环,直到Python中的所需输入
- powerbi - Excel Power BI 如何处理 datasource.error