#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int a[20000][20000];//此處選擇的數組大小是20000.經測試,如果是50000的話,會提示溢出錯誤
int c[5][5];
//遍歷數組A,採用先訪問行再訪問列的方式
void fun_1()
{
int i,j;
for(i=0; i<20000; i++)
{
for(j=0; j<20000; j++)
{
a[i][j]=i;
}
}
}
//顯示一下數組元素的地址,驗證是否是按行存儲。
void fun_add()
{
int i,j;
for(i=0; i<5; i++)
{
for(j=0; j<5; j++)
{
c[i][j]=i;
cout<<"The address of c["<<i<<"]["<<j<<"] = "<< &c[i][j]<<endl ;
}
}
}
//遍歷數組A,採用先訪問列再訪問行的方式
void fun_2()
{
int i,j;
for(j=0; j<20000; j++)
{
for(i=0; i<20000; i++)
{
a[i][j]=i;
}
}
}
int main()
{
clock_t start, finish;
double duration;
start = clock();
fun_1();
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
cout<<"The time for fun_1 is:"<<duration<<" seconds"<<endl;
start = clock();
fun_2();
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
cout<<"The time for fun_2 is:"<<duration<<" seconds"<<endl;
fun_add();
return 0;
}
測試用電腦:Dell Inspiron 5370(16GB內存),windows 10
編譯軟件:Dev-C++ 5.311
運行結果如下: