我寫這段代碼:爲什麼這個數組不爲零?
#include <iostream>
using namespace std;
double function(int i)
{
static int Array[5] = {0};
for(int j = i ; j <= i ; j++)
{
Array[j+1] = Array[j]+1;
}
return Array[i+1];
}
int main()
{
for(int i = 0 ; i <= 4 ; i++)
{
cout << function(i) << endl;
}
return 0;
}
,輸出1,2,3,4,5
我很奇怪,爲什麼在function(i)
每次調用數組中的元素不會成爲零,儘管這段代碼:
static int Array[5] = {0};
因爲這就是聲明變量'static'的要點。事實上,這個程序看起來像是爲了證明這個事實。所以無論是1.你是從外部來源得到的,也應該解釋這種行爲的原因,或者2.你寫了它來測試'static'的行爲,在這種情況下你應該已經有了一些線索答案,或者3.它是作業。 –