此for循环中“int factorial = 1”的说明

时间:2015-11-21 22:04:58

标签: 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行有什么作用?为什么需要它?

1 个答案:

答案 0 :(得分:4)

int factorial = 1;

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

使用1显式初始化,因为

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

  2. 0会很糟糕,因为0 * x = 0代表所有实数,1 * x = x代表所有实数。