c++ - 这个for循环中 "int factorial = 1"的解释

标签 c++ for-loop

我有这段代码旨在解释“for 循环”是如何工作的。

#include <iostream>
using namespace std;
int main() {
    int n;
    cout << "Input a positive integer: ";
    cin >> n;
    int factorial = 1;
    for (int i = 1; i <= n; ++i)
        factorial *= i;
    cout << "factorial(" << n << ") is << factorial << "\n ";
    return (0);
}

int factorial =1 这行是做什么的?为什么需要它?

最佳答案

int factorial = 1;

定义一个变量,标识符为factorial,类型为int。它旨在在 for 循环的所有迭代中保存阶乘计算的临时结果,并保存最终结果。

它被显式初始化为 1 因为

  1. 它必须以某种方式初始化;否则,将导致未定义的行为,因为将访问未初始化的内存位置。

  2. 0 会很糟糕,因为 0 * x = 0 对于所有实数,而 1 * x = x 对于所有实数数。

关于c++ - 这个for循环中 "int factorial = 1"的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33849123/

相关文章:

C++:获取 native dll依赖项而无需在进程中加载​​它

c++ - 如何在 C++ 的一个项目中访问所有具有相同类型/类的对象?

javascript - var i = [0] 在 for 循环中,然后递增 i++ - 为什么它有效?

python - 遍历 NumPy 矩阵列表

python - 为什么我的 for 循环会跳过列表中的一个元素?

c++ - 更改/设置 DeskBand 的名称

c++ - objective c 是否需要一个标准来定义像 c++ 11 这样的内存模型?

c++ - 提交后选择智能单元测试

c++ - OpenCV videoCapture 为 iOS 应用程序文档目录中的文件提供了错误的属性

java - 从 ArrayList 内的 HashMap 创建 View