Array Concept

問一個問題
int a[100];
a[55] = 123;
上面這段code,你想過為什麼你可以直接access第a[55]格嗎???

因為array是相同型態的資料儲存在相連的記憶體空間裡
"相同型態"和"相連",是你可以直接access第a[55]格的原因

當你宣告int a[100]時你得到一塊記憶體空間,總大小是100*4 byte,起始位置我們假設是0x1000好了。
現在當你要access array中某一格,cpu需要知道變數的address。若你要access a[0],address就是0x1000。但如果你要access a[55],請問address是多少?
答案是0x1000+55*4byte
因為是每個型態相同都是int,大小都是4byte,相連所以每隔4byte就是下一個人,所以你要access array中任一個人,電腦只要做下面這個小運算即可得到對應的address
a[k]的address = 0x1000+k*4byte
然後就可以馬上讀取資料了

[總結一下]
array是把相同型態的資料處存在相連的記憶體空間
所以可以快速算出任格一格的memory address然後直接access