c++ - C ++递增全局声明的计数器
问题描述
假设我有一个全局声明的计数器,它在另一个函数中递增
#include <iostream>
using namespace std;
int count = 0;
string passorFail(int x, int y)
{
if (x > y)
{
return "pass";
count++;
}
else
{
return "fail";
}
}
int main()
{
int x = 10;
int y = 5;
passorFail(x, y);
std::cout << "Count: " << count << std::endl;
}
但是,当它运行时,它只返回 0,而 Id 喜欢它返回 1。我知道人们会说在函数中声明,但出于我所做的目的,计数必须是全局的。我怎样才能做到这一点?
解决方案
在这个片段中:
return "pass";
count++;
您在增加计数之前从函数返回。您的编译器应该警告这count++;
是无法访问的代码。
你需要:
count++;
return "pass";
另外,请不要使用using namespace std;
. 例如,如果引入<iostream>
名称count
(允许这样做),代码将不会执行您想要的操作。
推荐阅读
- javascript - ReduxForm Field 组件不适用于列 Headers 中的 ReactTable Cell 属性
- javascript - 从嵌套对象中删除某些对象的最佳方法是什么?
- html - 如何设置
- 垂直?
- vb.net - 'GeckoButtonElement' 不包含带有 1 个参数的构造函数
- python - 熊猫:在多列上分组
- tensorflow - 使用 GradientTape 在 Tensorflow 中进行梯度计算 - 获得意外的无值
- laravel - Composer:SSL 证书问题:无法获取本地颁发者证书
- css - 用于在 React 中为自定义模态添加“弹出”效果的 CSS
- javascript - 如何将数据从 Flask 传递到 JavaScript
- javascript - Javascript DDT 不使用 csv 文件中的 $ 字符