关于简单C 功能的混乱
Confusion regarding simple C++ functions
我目前被困在这个问题上,但不知道我在做什么错:
完成函数add10((以制作程序可以向每个用户输入整数编号添加10个。(注意:您只能更改函数的代码add10((。请勿更改其他代码。(
提供给我的原始代码是:
#include <iostream>
#include <iomanip>
using namespace std;
//TODO: complete this function, do NOT change other code
void add10()
{
}
//Please do NOT change the following code
void main()
{
int n;
cin >> n;
add10(n);
cout << n;
}
我已经编辑了上述代码,如下所示,但它仍然返回与用户输入相同的值:
#include <iostream>
#include <iomanip>
using namespace std;
//TODO: complete this function, do NOT change other code
int add10(int n)
{
return n += 10;
}
//Please do NOT change the following code
void main()
{
int n;
cin >> n;
add10(n);
cout << n;
}
有人可以帮助我解释如何修复我的代码以及我做错了什么?谢谢!
从main
代码中可以看到,add10
的返回值已丢弃。这意味着您也可以声明它void
并没有返回。
void add10(int& n)
这将允许您对add10
功能中的n
进行明显的修改。
考虑阅读有关通过引用传递的一些教程,这是一个示例。
这是一个关于按值和参考传递参数之间的差异的问题。
您需要一个参考... C 将制作变量n的副本,而无论您在函数add10中做什么,都会使原始值都不适用。
int add10(int& n)
{
return n += 10;
}
更好的方法可能是返回void,因为您在主要方法中的代码也没有抓住结果...
void add10(int& n)
{
n += 10;
}
如果您只想打印可以
的值cout<<add10(n);
如果您需要未来使用的价值,则正确的方法是传递其参考,以便是
add10(n);
您的方法签名将为
void add10(int &n)
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何克服提升精神AST混乱
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- QML按钮点击功能执行顺序
- 无法理解此 return 语句的功能,没有它就会发生运行时错误
- 有没有可能有一个只有ADL才能找到的非好友功能
- 功能样式转换从 'int' 到 'ItemType' 的匹配转换
- 文件系统:复制功能的速度秘诀是什么
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 与功能调用混乱
- 关于简单C 功能的混乱
- 交换功能 - 指针 - 混乱
- 两个混乱的名称删除了相同的功能签名