Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แบบฝึกหัดคำถามเกี่ยวกับอาร์เรย์ในภาษา C++


อาร์เรย์ เป็นโครงสร้างข้อมูลที่เก็บข้อมูลในตำแหน่งหน่วยความจำที่ติดต่อได้

การประกาศอาร์เรย์

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.