C++全局变量值被修改

2017年9月9日晚,在做PAT甲级1103 Integer Factorization (30)一题时碰到一个问题,测试点5总是过不去。后来经过10号晚上反复测试发现其中一个全局变量的值在执行某个函数是被莫名修改了。

为验证全局变量的改动情况,写了一部分代码用于测试,如下:

#include "iostream"
using namespace std;

int factor[20 + 1];
int sumOfAns = 0;

int main(){
    int i = 1;
    factor[1] = 1;
    while(i <= 20){
        i ++;
        factor[i] = 1234;
    }
    //sumOfAns = 0;
    cout<<sumOfAns<<endl;
    system("pause");
}

执行结果为:

1234

很明显是已经被改动了。 然而倘若将第5行代码

继续阅读


Powered by Django 2. Copyright © 2014.

huchengbei.com. All rights reserved.