好奇怪,变量定义在 main 函数外和函数内为什么结果不一样
本来是一道简单的在数组找逆序对的题目,但是老测试不对,后来惊奇的发现,我把mu定义在main函数外面和定义在main函数里面结果在数组小的时候是一样的,但是数组大小达到500的时候,两个结果就产生了差异,,变量定义在main函数外和函数内为什么会有区别的程序代码:
#include<iostream> #include<fstream> using namespace std; int mu=0; //情况一 int main(){ int mu=0; //情况二 两个情况不一样 ifstream infile("rebuf.txt"); //利用重定向从rebuf.txt读取数 cin.rdbuf(infile.rdbuf()); int shu[500]; for(int i=0;i!=500;++i){ cin>>shu[i]; } int length=sizeof(shu)/sizeof(int); for(int i=0;i!=length;++i){ for(int j=i+1;j!=length;++j){ if(shu[i]>shu[j]) ++mu; } } cout<<mu<<endl; return 0; }