เป็นโครงสร้างข้อมูลที่มีการจองพื้นที่หน่วยความจำ (Memory) เป็นชุด ๆ แต่ละชุดประกอบด้วยจำนวนช่องข้อมูลหลายช่อง พื้นที่แต่ละช่องข้อมูลจะเก็บข้อมูลชนิดเดียวกัน และอยู่ในตำแหน่งที่ต่อเนื่องกันไปตามลำดับ
การเข้าถึงข้อมูล(Access) ใด ๆ ในโครงสร้างอาร์เรย์ สามารถกระทำได้โดยการระบุหมายเลขกำกับช่องข้อมูล ที่เรียกว่า ตัวดัชนี (Index) หรือบางครั้งเรียกว่า ตัวห้อย หรือซับสคริปต์ (Sub Script) เป็นตัวอ้างอิงตำแหน่งสมาชิกบนแถวลำดับ เช่น A(3) หมายถึง สมาชิกอาร์เรย์ A ลำดับที่ 3
ชนิดของอาร์เรย์
• อาร์เรย์ 1 มิติ
• อาร์เรย์ 2 มิติ
อาร์เรย์หนึ่งมิติ (One Dimension Array)
• มีการจัดเก็บข้อมูลในลักษณะต่อเนื่องกันเป็นแถว ซึ่งจะนำเสนอในมุมมองแบบแนวตั้งและแนวนอนก็ได้
• สัญลักษณ์ที่ใช้คือ array_name[size]
• เช่น num[5] หมายถึง num เป็นอาร์เรย์ 1 มิติขนาด 5 (มีสมาชิก 5 ตัวหรือ 5 ช่อง)
หรือ
ในภาษาคอมพิวเตอร์ทั่วไป ค่าดัชนี(index) จะเริ่มต้นจาก 0 เช่น ภาษา C , C++ java และวงเล็บที่อยู่หลังตัวแปรอาร์เรย์ จะใช้เครื่องหมาย [ ] หรือ () ขึ้นอยู่กับ ภาษานั้น เช่น c , c++ , java ใช้เครื่องหมาย [ ] visual basic ใช้เครื่องหมาย ()
• ตัวอย่างการประกาศอาร์เรย์ 1 มิติในภาษา C , C++
int num[20];
char grade[10];
ขอบเขตของอาร์เรย์ 1 มิติ
• เลขดัชนีในอาร์เรย์ประกอบด้วยช่วงขอบเขตของค่าซึ่งประกอบด้วยขอบเขตล่างสุด (Lower Bound) และขอบเขตบนสุด (Upper Bound)
การคำนวณหาจำนวนสมาชิกของอาร์เรย์หนึ่งมิติ
• รูปแบบ ArrayName [L:U]
โดย ArrayName คือ ชื่อของอาร์เรย์
L คือ ขอบเขตล่างสุด (Lower Bound)
U คือ ขอบเขตบนสุด (Upper Bound)
• จำนวนสมาชิก = U-L+1
• เช่น num[1:5] มีสมาชิก เท่ากับ 5-1+1 = 5 ตัว
การคำนวณหาตำแหน่ง(Address)ในหน่วยความจำของอาร์เรย์ 1 มิติ
หาได้จากสูตร
Loc(A[i]) = B + w * (i – L)
โดยที่
i : ตำแน่งที่ต้องการ
B : ตำแหน่งเริ่มต้นในหน่วยความจำ
L : ตำแหน่งเริ่มต้น
w : ขนาดความกว้างของชนิดข้อมูลของข้อมูล (byte)
ตัวอย่าง การหาตำแหน่งในหน่วยความจำ ของอาร์เรย์หนึ่งมิติ
ตัวอย่าง 1 กำหนด อาร์เรย์ Data[1:5] เก็บข้อมูลชนิดตัวอักษร ซึ่งใช้เนื้อที่ในการเก็บข้อมูล 2 bytes ต่อชุด โดยมีตำแหน่งเริ่มต้นในหน่วยความจำอยู่ที่ 1000 จงหาตำแหน่งที่ใช้เก็บข้อมูลของ Data[2]
แทนค่าดังนี้
i = 2, B = 1000, L = 1, w = 2
จะได้ Loc(Data[2]) = 1000 + 2 * (2 – 1)
= 1000 + 2 * 1
= 1000 + 2
= 1002
ตัวอย่าง 2 ต้องการประกาศตัวแปรอาร์เรย์ income เพื่อจัดเก็บยอดรายได้ของ ปี พ.ศ. 2541-2550ซึ่งเป็นไปตามรูปแบบ income[2541:2550] ถ้าข้อมูลที่จัดเก็บกินเนื้อที่ 4 ไบต์ต่อสมาชิก1ตัวและสมาชิกตัวแรกจัดเก็บในตำแหน่งที่ 7000 จงคำนวณหาแอดเดรสที่จัดเก็บยอดรายได้ของปี 2549
แทนค่าดังนี้
i = 2549, B= 7000, L = 2541, w = 4
จะได้ Loc(income[2549]) = 7000 + 4 * (2549 – 2541)
= 7000 + 4 * 8
= 7000 + 32
= 7032
ที่มา : https://www.youtube.com/watch?v=mhkvbgaL_c0&t=5s