อาร์เรย์ (Array) เป็นโครงสร้างข้อมูลที่เก็บข้อมูลในหน่วยความจำที่ติดกัน (contagious memory location)
การประกาศอาร์เรย์ (Declaring arrays)
การประกาศอาร์เรย์ทำโดยไวยากรณ์ดังนี้ : int 1D[] - สำหรับ 1-D array int 2D[][] - สำหรับ 2-D array
ถ้าคุณ initialize อาร์เรย์ด้วยจำนวนองค์ประกอบน้อยกว่า ที่เหลือจะถูก initialize ด้วย 0
ที่อยู่หน่วยความจำขององค์ประกอบของอาร์เรย์
1-D array : address[i] = baseAddress + i*size 2-D array (row major) : address[i][j] = baseAddress + (i*n + j) * size
ตอนนี้ มาดูโจทย์ฝึกหัดบ้าง
ทายผลลัพธ์ของโค้ดต่อไปนี้
int arr[5] = {6, 9};
for(int i = 0; i<5; i++)
cout<<arr[i]<<" ";
ผลลัพธ์
6 9 0 0 0
อาร์เรย์ถูก initialize ด้วยสองค่า และค่าที่เหลือถูก initialize เป็น 0 ซึ่งสะท้อนในผลลัพธ์
int arr[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
cout<<arr[1][2];
ผลลัพธ์
6
หาที่อยู่ขององค์ประกอบที่กำหนดของอาร์เรย์จำนวนเต็ม ถ้าที่อยู่ฐานคือ 1420
1D array : arr[43] address = 1420 + 43*2 = 1506 2D array of size arr[10][10] : arr[5][4], stored as row major address = 1420 + (5*10 + 4)*2 = 1420 + (54)*2 = 1528.