อาร์เรย์ใน C++: การประกาศ การกำหนดค่าเริ่มต้น และตัวชี้ (ตัวอย่าง)

⚡ สรุปอย่างชาญฉลาด

อาร์เรย์ใน C++ อาร์เรย์คือกลุ่มขององค์ประกอบที่มีชนิดข้อมูลเดียวกันซึ่งจัดเก็บอยู่ในตำแหน่งหน่วยความจำที่ต่อเนื่องกัน ในที่นี้คุณจะได้เรียนรู้วิธีการประกาศ การกำหนดค่าเริ่มต้น และการเข้าถึงอาร์เรย์ ชนิดของอาร์เรย์ ตลอดจนข้อดีและข้อเสียของอาร์เรย์

  • 📚 มันคืออะไร: อาร์เรย์เก็บค่าหลายค่าที่มีชนิดข้อมูลเดียวกันไว้ในตัวแปรเดียว
  • 🔢 ประกาศ: ประกาศอาร์เรย์ที่มีชนิด ชื่อ และขนาด เช่น int nums[5];
  • 🎯 การจัดทำดัชนี: สามารถเข้าถึงองค์ประกอบของอาร์เรย์ได้โดยใช้ดัชนี โดยเริ่มจาก 0
  • 🧩 การเริ่มต้น: คุณสามารถกำหนดค่าให้กับอาร์เรย์ได้ในขณะประกาศโดยใช้เครื่องหมายวงเล็บปีกกา { }
  • 🇧🇷 การแลกเปลี่ยน: อาร์เรย์ช่วยให้เข้าถึงข้อมูลโดยใช้ดัชนีได้อย่างรวดเร็ว แต่มีขนาดคงที่
  • 🤖 ความช่วยเหลือจาก AI: เครื่องมือ AI เช่น GitHub Copilot สร้างลูปอาร์เรย์และตรรกะได้ทันที

อาร์เรย์ใน C++

อาร์เรย์คืออะไร?

อาร์เรย์เป็นโครงสร้างข้อมูลที่จัดเก็บองค์ประกอบของประเภทข้อมูลเดียวกันตามลำดับ ก C++ อาร์เรย์มีขนาดคงที่

คุณสามารถดูอาร์เรย์เป็นชุดของตัวแปรประเภทข้อมูลที่คล้ายกันได้ แทนที่จะประกาศตัวแปรแต่ละตัวและกำหนดค่าแยกกัน คุณสามารถประกาศตัวแปรหนึ่งตัว (อาร์เรย์) และเพิ่มค่าของตัวแปรต่างๆ เข้าไปได้ แต่ละมูลค่าเพิ่มในอาร์เรย์จะถูกระบุโดยดัชนี

ทำไมเราต้องมีอาร์เรย์?

อาร์เรย์ มีความสำคัญมากในภาษาการเขียนโปรแกรมใดๆ ซึ่งช่วยให้จัดเก็บตัวแปรหรือรวบรวมข้อมูลประเภทข้อมูลเดียวกันไว้ด้วยกันได้สะดวกยิ่งขึ้น แทนที่จะจัดเก็บแยกกัน แต่ละค่าของอาร์เรย์จะถูกเข้าถึงแยกกัน

ประกาศอาร์เรย์ใน C++

การประกาศอาร์เรย์ใน C++ เกี่ยวข้องกับการระบุประเภทและจำนวนองค์ประกอบที่จะจัดเก็บโดยอาร์เรย์ ไวยากรณ์:

type array-Name [ array-Size ];

กฎสำหรับการประกาศอาร์เรย์มิติเดียว C++.

  • ประเภทงาน: ประเภทคือประเภทขององค์ประกอบที่จะจัดเก็บไว้ในอาร์เรย์และจะต้องถูกต้อง C++ ประเภทข้อมูล.
  • ชื่ออาร์เรย์: array-Name คือชื่อที่จะกำหนดให้กับอาร์เรย์
  • อาร์เรย์-ขนาด: array-Size คือจำนวนองค์ประกอบที่จะจัดเก็บไว้ในอาร์เรย์ ต้องเป็นจำนวนเต็มและมากกว่า 0

ตัวอย่างเช่น คุณสามารถสร้างอาร์เรย์ชื่อ age และเก็บอายุของนักเรียน 5 คนได้ดังนี้:

int age[5];

อายุอาร์เรย์จะเก็บจำนวนเต็ม 5 ตัวซึ่งแสดงถึงอายุของนักเรียนที่แตกต่างกัน

การเริ่มต้นอาร์เรย์

การเริ่มต้นอาร์เรย์เป็นกระบวนการในการกำหนด/จัดเก็บองค์ประกอบให้กับอาร์เรย์ การเริ่มต้นสามารถทำได้ในคำสั่งเดียวหรือทีละรายการ โปรดทราบว่าองค์ประกอบแรกในอาร์เรย์จะถูกเก็บไว้ที่ดัชนี 0 ในขณะที่องค์ประกอบสุดท้ายจะถูกเก็บไว้ที่ดัชนี n-1 โดยที่ n คือจำนวนองค์ประกอบทั้งหมดในอาร์เรย์

ในกรณีของอาร์เรย์อายุ องค์ประกอบแรกจะถูกเก็บไว้ที่ดัชนี 0 ในขณะที่องค์ประกอบสุดท้ายจะถูกเก็บไว้ที่ดัชนี 4

ให้เราใช้อาร์เรย์อายุเพื่อสาธิตวิธีการเริ่มต้นอาร์เรย์สามารถทำได้:

int age[5] = {19, 18, 21, 20, 17};

จำนวนองค์ประกอบทั้งหมดภายใน { } ต้องไม่เกินค่าที่ระบุภายใน [ ] องค์ประกอบ 19 อยู่ที่ดัชนี 0, 18 ที่ดัชนี 1, 21 ที่ดัชนี 2, 20 ที่ดัชนี 3 และ 17 ที่ดัชนี 4 หากคุณไม่ระบุจำนวนองค์ประกอบที่จะจัดเก็บไว้ในอาร์เรย์ภายใน [ ] อาร์เรย์ จะมีขนาดใหญ่พอที่จะเก็บองค์ประกอบที่เพิ่มภายใน { } เท่านั้น ตัวอย่างเช่น:

int age[] = {19, 18, 21, 20, 17};

คำสั่งข้างต้นจะสร้างอาร์เรย์เดียวกันกับคำสั่งก่อนหน้าทุกประการ คุณยังสามารถกำหนดองค์ประกอบหนึ่งให้กับอาร์เรย์โดยใช้ดัชนีของมันได้ ตัวอย่างเช่น:

age[3] = 20;

ข้อความข้างต้นจะเก็บค่า 20 ไว้ที่ดัชนี 3 ของอาร์เรย์ชื่อ age ซึ่งหมายความว่า 20 จะเป็น 4th องค์ประกอบของอาร์เรย์

ประเภทของอาร์เรย์

มีสองประเภทเป็น C++ อาร์เรย์:

  • อาร์เรย์มิติเดียว
  • อาร์เรย์หลายมิติ
  • ตัวชี้ไปยังอาร์เรย์

อาร์เรย์มิติเดียว

นี่คืออาร์เรย์ที่รายการข้อมูลจัดเรียงเชิงเส้นในมิติเดียวเท่านั้น โดยทั่วไปเรียกว่าอาร์เรย์ 1 มิติ ไวยากรณ์:

datatype array-name[size];
  • ชื่ออาร์เรย์คือชื่อของอาร์เรย์
  • ขนาดคือจำนวนรายการที่จะจัดเก็บไว้ในอาร์เรย์

ตัวอย่างเช่น:

#include <iostream>
using namespace std;

int main()
{
	int age[5] = { 19, 18, 21, 20, 17 };
	for (int x = 0; x < 5; x++)
	{
		cout <<age[x]<<"\n";
	}
}

Output:

อาร์เรย์มิติเดียว

นี่คือภาพหน้าจอของรหัส:

อาร์เรย์มิติเดียว

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม
  4. จุดเริ่มต้นของฟังก์ชัน main()
  5. การประกาศอาร์เรย์ชื่อ age เพื่อเก็บจำนวนเต็ม 5 ตัว จำนวนเต็ม 5 ตัวก็ถูกเตรียมใช้งานเช่นกัน
  6. สร้างตัวแปรจำนวนเต็ม x โดยใช้ for loop
  7. จุดเริ่มต้นของเนื้อความของ for loop
  8. การใช้ตัวแปรลูป x เพื่อวนซ้ำค่าของอายุอาเรย์และพิมพ์ลงบนคอนโซล “\n” เป็นอักขระขึ้นบรรทัดใหม่และพิมพ์ขึ้นบรรทัดใหม่หลังจากการวนซ้ำทุกครั้ง
  9. ส่วนปลายของลำตัว สำหรับห่วง.
  10. ส่วนท้ายของฟังก์ชัน main()

อาร์เรย์หลายมิติ

นี่คืออาร์เรย์ที่รายการข้อมูลถูกจัดเรียงเพื่อสร้างอาร์เรย์ของอาร์เรย์ อาร์เรย์หลายมิติสามารถมีจำนวนมิติเท่าใดก็ได้ แต่อาร์เรย์สองมิติและสามมิติเป็นเรื่องปกติ ไวยากรณ์:

datatype array-name[d1][d2][d3]...[dn];

ชื่ออาร์เรย์คือชื่อของอาร์เรย์ที่จะมี n มิติ ตัวอย่างเช่น:

อาร์เรย์สองมิติ

อาร์เรย์ 2 มิติจะจัดเก็บข้อมูลในรายการที่มีอาร์เรย์ 1 มิติ ซึ่งเป็นเมทริกซ์ที่มีแถวและคอลัมน์ หากต้องการประกาศอาร์เรย์ 2 มิติ ให้ใช้รูปแบบต่อไปนี้:

type array-Name [ x ][ y ];

ประเภทจะต้องถูกต้อง C++ ชนิดข้อมูล ดูอาร์เรย์ 2 มิติเป็นตาราง โดยที่ x หมายถึงจำนวนแถว ในขณะที่ y หมายถึงจำนวนคอลัมน์ ซึ่งหมายความว่า คุณสามารถระบุแต่ละองค์ประกอบในอาร์เรย์ 2 มิติได้โดยใช้รูปแบบ a[x][y] โดยที่ x คือจำนวนแถว และ y คือจำนวนคอลัมน์ที่มีองค์ประกอบนั้นอยู่

นี่คือตัวอย่างวิธีการเริ่มต้นอาร์เรย์ 2D:

int a[2][3] = {  
   {0, 2, 1} ,   /*  row at index 0 */
   {4, 3, 7} ,   /*  row at index 1 */
   };

ในตัวอย่างข้างต้น เรามีอาร์เรย์ 2 มิติซึ่งสามารถมองเป็นเมทริกซ์ขนาด 2×3 ได้ มี 2 ​​แถว 3 คอลัมน์ องค์ประกอบ 0 สามารถเข้าถึงได้ในฐานะ a[0][1] เนื่องจากตั้งอยู่ที่จุดตัดของแถวที่มีดัชนี 0 และคอลัมน์ที่มีดัชนี 1 องค์ประกอบ 3 สามารถเข้าถึงได้ในฐานะ a[1][2] เนื่องจากตั้งอยู่ที่ จุดตัดของแถวที่จัดทำดัชนี 1 และคอลัมน์ที่จัดทำดัชนี 2

โปรดทราบว่าเราเพียงเพิ่มเครื่องหมายปีกกาเพื่อแยกแยะแถวขององค์ประกอบต่างๆ การเริ่มต้นสามารถทำได้ดังนี้:

int a[2][3] = {0, 2, 1, 4, 3, 7};
   };

ดังต่อไปนี้ C++ ตัวอย่างแสดงวิธีการเริ่มต้นและดำเนินการอาร์เรย์ 2 มิติ:

#include <iostream>
using namespace std;
int main() 
{
	// a 2x3 array
	int a[3][2] = { {0, 2}, {1, 4}, {3, 7} };

	// traverse array elements

	for (int i=0; i<3; i++)
		for (int j=0; j<2; j++) 
		
		{
			cout << "a[" <<i<< "][" <<j<< "]: ";
			cout << a[i][j] << endl;
		}
	return 0;
}

Output:

อาร์เรย์สองมิติ

นี่คือภาพหน้าจอของโค้ดด้านบน:

อาร์เรย์สองมิติ

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ภายในโค้ดที่ควรเพิ่ม
  4. จุดเริ่มต้นของฟังก์ชัน main()
  5. ความคิดเห็น ที่ C++ คอมไพเลอร์จะข้ามสิ่งนี้
  6. การประกาศอาร์เรย์ 2 มิติ จำนวน 3 แถว และ 2 คอลัมน์ รายการได้ถูกเพิ่มเข้าไปในอาร์เรย์ด้วย
  7. ความคิดเห็น ที่ C++ คอมไพเลอร์จะข้ามสิ่งนี้
  8. การสร้างตัวแปรที่ฉันใช้สำหรับการวนซ้ำ ตัวแปรนี้จะวนซ้ำดัชนีแถวของอาร์เรย์
  9. การสร้างตัวแปร j โดยใช้ for a loop ตัวแปรนี้จะวนซ้ำดัชนีคอลัมน์ของอาร์เรย์
  10. จุดเริ่มต้นของตัวลูป
  11. พิมพ์ค่าของตัวแปร i และ j บนคอนโซลภายในวงเล็บเหลี่ยมบนคอนโซล
  12. พิมพ์ค่าที่เก็บไว้ที่ดัชนี [i][j] ของอาร์เรย์ a
  13. ส่วนปลายของตัวห่วง
  14. ฟังก์ชัน main() ควรส่งคืนค่าจำนวนเต็มหากโปรแกรมทำงานได้ดี
  15. ส่วนท้ายของฟังก์ชัน main()

อาร์เรย์สามมิติ

อาร์เรย์ 3 มิติคืออาร์เรย์ของอาร์เรย์ แต่ละองค์ประกอบในอาร์เรย์ 3 มิติจะถูกระบุโดยชุดดัชนี 3 รายการ ในการเข้าถึงองค์ประกอบของอาร์เรย์ 3 มิติ เราใช้สาม for loops ตัวอย่างเช่น:

#include<iostream>
using namespace std;
void main()
{
	int a[2][3][2] = {{{4, 8},{2, 4},{1, 6}}, {{3, 6},{5, 4},{9, 3}}};
	cout << "a[0][1][0] = " << a[0][1][0] << "\n";
	cout << "a[0][1][1] = " << a[0][1][1] << "\n";
}

Output:

อาร์เรย์สามมิติ

นี่คือภาพหน้าจอของรหัส:

อาร์เรย์สามมิติ

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม
  4. จุดเริ่มต้นของฟังก์ชัน main()
  5. การประกาศอาร์เรย์ 3 มิติชื่อขนาด 2x3x2 ค่าของอาร์เรย์ยังได้รับการเตรียมใช้งานด้วย
  6. การเข้าถึงรายการที่จัดเก็บไว้ที่ดัชนี [0] [1] [0] ของอาร์เรย์และพิมพ์บนคอนโซล
  7. การเข้าถึงรายการที่จัดเก็บไว้ที่ดัชนี [0] [1] [1] ของอาร์เรย์และพิมพ์บนคอนโซล
  8. ส่วนท้ายของฟังก์ชัน main()

ตัวชี้ไปยังอาร์เรย์

A ตัวชี้ เป็นตัวแปรที่เก็บที่อยู่ นอกเหนือจากการใช้พอยน์เตอร์เพื่อจัดเก็บที่อยู่ของตัวแปรแล้ว เราสามารถใช้พอยน์เตอร์เพื่อจัดเก็บที่อยู่ของเซลล์อาร์เรย์ได้ ชื่อของอาร์เรย์ชี้ไปที่องค์ประกอบแรกอย่างต่อเนื่อง พิจารณาคำประกาศที่ให้ไว้ด้านล่าง:

int age[5];

อายุคือตัวชี้ไปยัง $age[0] ซึ่งเป็นที่อยู่ขององค์ประกอบแรกของอาร์เรย์ที่มีชื่อว่า age ลองพิจารณาตัวอย่างต่อไปนี้:

#include <iostream>
using namespace std;
int main()
{
	int *john;

	int age[5] = { 19, 18, 21, 20, 17 };

	john = age;

	cout << john << "\n";

	cout << *john;
	
}

Output:

ตัวชี้ไปยังอาร์เรย์

โปรดทราบว่าค่าแรกของเอาต์พุตด้านบนอาจส่งคืนค่าที่แตกต่างกัน ขึ้นอยู่กับที่อยู่ที่กำหนดให้กับองค์ประกอบแรกของอาร์เรย์ในหน่วยความจำของคอมพิวเตอร์ของคุณ

นี่คือภาพหน้าจอของรหัส:

ตัวชี้ไปยังอาร์เรย์

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ภายในที่ควรเพิ่มตรรกะของโปรแกรม
  4. จุดเริ่มต้นของฟังก์ชัน main()
  5. การประกาศตัวแปรพอยน์เตอร์ชื่อ *john
  6. การประกาศอาร์เรย์จำนวนเต็มชื่ออายุเพื่อเก็บจำนวนเต็ม 5 ตัว ค่าของจำนวนเต็มได้ถูกเตรียมใช้งานแล้วเช่นกัน
  7. การกำหนดค่าให้กับตัวแปร john ค่าของที่อยู่ของรายการที่เก็บไว้ในดัชนีแรกของอายุอาร์เรย์
  8. การพิมพ์ค่าของตัวแปร john ซึ่งเป็นที่อยู่ของรายการที่จัดเก็บไว้ในดัชนีแรกของอายุอาร์เรย์
  9. การพิมพ์ค่าแรกที่เก็บไว้ในอายุอาเรย์
  10. ส่วนท้ายของฟังก์ชัน main()

ชื่ออาร์เรย์สามารถใช้เป็นตัวชี้ค่าคงที่ได้ และในทางกลับกันก็เป็นจริงเช่นกัน ซึ่งหมายความว่าคุณสามารถเข้าถึงค่าที่เก็บไว้ที่ดัชนี 3 ของอายุอาเรย์ด้วย *(age + 3) ตัวอย่างเช่น:

#include <iostream>
using namespace std;

int main() {
	// an array of 5 elements.
	int age[5] = { 19, 18, 21, 20, 17 };
	int *p;

	p = age;

	// output array values

	cout << "Using pointer: " << endl;

	for (int x=0; x<5; x++) {
		cout << "*(p + " << x << ") : ";
		cout << *(p + x) << endl;
	}
	cout << "Using age as address: " << endl;

	for (int x = 0; x < 5; x++) {
		cout << "*(age + " << x << ") : ";
		cout << *(age + x) << endl;
	}

	return 0;
}

Output:

ตัวชี้ไปยังอาร์เรย์

นี่คือภาพหน้าจอของรหัส:

ตัวชี้ไปยังอาร์เรย์

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() และจุดเริ่มต้นของส่วนเนื้อหาของฟังก์ชัน main()
  4. ความคิดเห็น ที่ C++ คอมไพเลอร์จะข้ามสิ่งนี้
  5. การประกาศอาร์เรย์ชื่อ age เพื่อเก็บจำนวนเต็ม 5 ตัว
  6. การสร้างตัวชี้จำนวนเต็ม p
  7. การกำหนดค่า p ของที่อยู่ขององค์ประกอบแรกของอายุอาเรย์
  8. ความคิดเห็น ที่ C++ คอมไพเลอร์จะข้ามสิ่งนี้
  9. พิมพ์ข้อความบนคอนโซล
  10. สร้างจำนวนเต็ม x โดยใช้ a สำหรับการวนซ้ำ { เป็นเครื่องหมายจุดเริ่มต้นของส่วนเนื้อหาของ for a loop
  11. พิมพ์ค่าของ x รวมกับข้อความอื่นบนคอนโซล
  12. พิมพ์ค่าของ *(p + x) บนคอนโซล
  13. ส่วนท้ายของตัว for a loop
  14. พิมพ์ข้อความบนคอนโซล
  15. สร้างตัวแปร x โดยใช้ a for a loop { เป็นเครื่องหมายจุดเริ่มต้นของเนื้อความของ for loop
  16. พิมพ์ค่า x จาก 0 ถึง 4 ข้างข้อความอื่นๆ
  17. พิมพ์ค่าของ *(อายุ + x)
  18. ส่วนท้ายของ for loop
  19. ส่งกลับค่าหากโปรแกรมทำงานได้สำเร็จ
  20. ส่วนท้ายของฟังก์ชัน main()

การเข้าถึงค่าของ Array

องค์ประกอบของอาร์เรย์จะถูกเข้าถึงโดยใช้ดัชนีที่เกี่ยวข้อง ดัชนีขององค์ประกอบที่จะเข้าถึงจะถูกเพิ่มภายในวงเล็บเหลี่ยม [ ] ทันทีหลังชื่ออาร์เรย์ ตัวอย่างเช่น:

int john = age[2];

ในตัวอย่างข้างต้น เราเพียงระบุว่าอายุของ john ถูกเก็บไว้ที่ดัชนี 2 ของอาร์เรย์ชื่อ age ซึ่งหมายความว่าอายุของจอห์นคือ 3rd ค่าในยุคอาร์เรย์ นี่คือที่สมบูรณ์ C++ ตัวอย่างที่แสดงวิธีการเข้าถึงและพิมพ์ค่านี้:

#include<iostream>
using namespace std;
int main()
{
	int age[5] = { 19, 18, 21, 20, 17 };
	int john = age[2];
	cout << "The age of John is:"<<john;
}

Output:

การเข้าถึงค่าของ Array

นี่คือภาพหน้าจอของรหัส:

การเข้าถึงค่าของ Array

Code คำอธิบาย:

  1. รวมไฟล์ส่วนหัว iostream ไว้ในโค้ดของเรา มันจะช่วยให้เราอ่านและเขียนไปยังคอนโซลได้
  2. รวมเนมสเปซมาตรฐานเพื่อใช้คลาสและฟังก์ชันโดยไม่ต้องเรียกมัน
  3. การเรียกใช้ฟังก์ชัน main() ภายในโค้ดที่ควรเพิ่ม
  4. เริ่มต้นเนื้อความของฟังก์ชัน main()
  5. การประกาศอาร์เรย์ชื่อ age เพื่อจัดเก็บองค์ประกอบจำนวนเต็ม 5 รายการ
  6. การเข้าถึงค่าที่จัดเก็บไว้ในดัชนี 2 ของอายุอาร์เรย์และจัดเก็บค่าในตัวแปรชื่อ john
  7. การพิมพ์ค่าของตัวแปร john บนคอนโซลควบคู่ไปกับข้อความอื่น

ข้อดีของอาร์เรย์ใน C++

นี่คือข้อดี/ประโยชน์ของการใช้ Array C++:

  • องค์ประกอบอาร์เรย์สามารถเคลื่อนที่ได้อย่างง่ายดาย
  • ง่ายต่อการจัดการข้อมูลอาร์เรย์
  • องค์ประกอบอาร์เรย์สามารถเข้าถึงได้แบบสุ่ม
  • อาร์เรย์อำนวยความสะดวกในการเพิ่มประสิทธิภาพโค้ด ดังนั้นเราจึงสามารถทำงานได้มากโดยใช้โค้ดน้อยลง
  • จัดเรียงข้อมูลอาร์เรย์ได้ง่าย

ข้อเสียของ Array in C++

  • อาร์เรย์มีขนาดคงที่ ดังนั้นเราจึงไม่สามารถเพิ่มองค์ประกอบใหม่เข้าไปได้หลังจากการกำหนดค่าเริ่มต้น
  • การจัดสรรหน่วยความจำมากกว่าข้อกำหนดจะทำให้พื้นที่หน่วยความจำสิ้นเปลือง และการจัดสรรหน่วยความจำน้อยลงอาจทำให้เกิดปัญหาได้
  • ต้องทราบจำนวนองค์ประกอบที่จะจัดเก็บไว้ในอาร์เรย์ล่วงหน้า

คำถามที่พบบ่อย

อาร์เรย์ใน C++ คือกลุ่มขององค์ประกอบที่มีชนิดข้อมูลเดียวกันซึ่งจัดเก็บอยู่ในตำแหน่งหน่วยความจำที่ต่อเนื่องกัน ช่วยให้คุณสามารถจัดเก็บและเข้าถึงค่าจำนวนมากได้โดยใช้ชื่อตัวแปรเดียวและดัชนี

ประกาศอาร์เรย์โดยระบุชนิดข้อมูล ชื่อ และขนาดในวงเล็บเหลี่ยม เช่น int numbers[5]; เพื่อสงวนพื้นที่สำหรับจำนวนเต็มห้าตัวในหน่วยความจำ

เข้าถึงองค์ประกอบโดยใช้ดัชนีในวงเล็บเหลี่ยม เช่น numbers[0] สำหรับองค์ประกอบแรก ดัชนีของอาร์เรย์เริ่มต้นที่ 0 และไปจนถึงขนาดของอาร์เรย์ลบหนึ่ง

กำหนดค่าเริ่มต้นให้กับอาร์เรย์เมื่อประกาศโดยใช้เครื่องหมายวงเล็บปีกกา เช่น int nums[3] = {1, 2, 3}; คุณยังสามารถกำหนดค่าในภายหลังโดยใช้ดัชนีได้ เช่น nums[0] = 5;

C++ รองรับอาร์เรย์หนึ่งมิติสำหรับรายการแบบง่าย และอาร์เรย์หลายมิติ เช่น อาร์เรย์สองมิติ สำหรับตารางหรือตารางค่าต่างๆ

อาร์เรย์ช่วยให้เข้าถึงข้อมูลโดยใช้ดัชนีได้อย่างรวดเร็วและจัดเก็บข้อมูลได้อย่างมีประสิทธิภาพ แต่มีขนาดคงที่ที่กำหนดไว้ตั้งแต่การประกาศและไม่สามารถขยายขนาดได้หลังจากเริ่มต้นใช้งาน

ผู้ช่วย AI อย่าง GitHub Copilot จะสร้างการประกาศอาร์เรย์ เขียนลูปเพื่อเติมหรือค้นหาในอาร์เรย์ และแนะนำวิธีแก้ไขข้อผิดพลาดเกี่ยวกับดัชนีที่อยู่นอกขอบเขตขณะที่คุณพิมพ์

ใช่แล้ว เครื่องมือที่ขับเคลื่อนด้วย AI จะตรวจจับการเข้าถึงที่อยู่นอกขอบเขต ข้อผิดพลาดแบบ off-by-one และอาร์เรย์ที่ไม่ได้เริ่มต้นใช้งาน และแนะนำทางเลือกที่ปลอดภัยกว่า เช่น std::vector สำหรับข้อมูลแบบไดนามิก

สรุปโพสต์นี้ด้วย: