อาร์เรย์ เป็นโครงสร้างข้อมูลที่เก็บข้อมูลในตำแหน่งหน่วยความจำที่ติดต่อได้
การประกาศอาร์เรย์
Declaring arrays is done by the following syntax : int 1D[] - for 1-D array int 2D[][] - for 2-D array
หากคุณเริ่มต้นอาร์เรย์ที่มีองค์ประกอบน้อยกว่า ส่วนที่เหลือจะถูกเริ่มต้นด้วย 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
อาร์เรย์เริ่มต้นด้วยสองค่า และค่าที่เหลือจะถูกเริ่มต้นเป็น 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.