ความแตกต่างระหว่างตัวชี้และอาร์เรย์
ตัวชี้และ Array
ตัวชี้เป็นชนิดข้อมูลที่มีการอ้างถึงตำแหน่งหน่วยความจำ (เช่น ตัวแปรตัวชี้เก็บที่อยู่ของตำแหน่งหน่วยความจำซึ่งเก็บข้อมูลบางส่วนไว้) อาร์เรย์เป็นโครงสร้างข้อมูลที่ใช้มากที่สุดเพื่อจัดเก็บชุดขององค์ประกอบภาษาเขียนโปรแกรมส่วนใหญ่มีวิธีการประกาศอาร์เรย์และองค์ประกอบการเข้าถึงได้ง่ายในอาร์เรย์ <
ตัวชี้คืออะไร?ตัวชี้เป็นชนิดข้อมูลที่จัดเก็บที่อยู่ของตำแหน่งหน่วยความจำซึ่งเก็บข้อมูลบางอย่างในคำอื่น ๆ ตัวชี้จะมี อ้างอิงไปยังตำแหน่งหน่วยความจำการเข้าถึงข้อมูลที่เก็บไว้ในตำแหน่งหน่วยความจำที่อ้างอิงโดยตัวชี้เรียกว่า dereferencing เมื่อ perfo การดำเนินการซ้ำ ๆ เช่นการสำรวจต้นไม้ / สตริงการค้นหาตาราง ฯลฯ โดยใช้คำแนะนำจะช่วยปรับปรุงประสิทธิภาพ เนื่องจากตัวชี้วัด dereferencing และการคัดลอกมีราคาถูกกว่าการคัดลอกและเข้าถึงข้อมูลที่ชี้โดยคำแนะนำ ตัวชี้ null เป็นตัวชี้ที่ไม่ชี้ไปที่อะไร ใน Java การเข้าถึงตัวชี้ค่า null จะสร้างข้อยกเว้นที่เรียกว่า NullPointerException
แสดงในรูปที่ 1 เป็นส่วนของรหัสที่ใช้เพื่อประกาศและกำหนดค่าให้กับอาเรย์ รูปที่ 2 แสดงให้เห็นว่าอาร์เรย์จะมีลักษณะอย่างไรในหน่วยความจำ ค่า int
[5];
ค่า [0] = 100; ค่า [1] = 101; ค่า [2] = 102;
ค่า [4] = 104; รูปที่ 1: รหัสสำหรับประกาศและกำหนดค่าให้กับอาร์เรย์ |
100
101 | 102 | 103 | 104 | ดัชนี: 0 |
1 | 2 < 3 | 4 | รูปที่ 2: อาร์เรย์ที่จัดเก็บไว้ในหน่วยความจำ | รหัสข้างต้นกำหนดอาร์เรย์ที่สามารถจัดเก็บจำนวนเต็ม 5 ตัวและสามารถเข้าถึงได้โดยใช้ดัชนี 0 ถึง 4 คุณสมบัติที่สำคัญอย่างหนึ่งของอาร์เรย์คือ อาร์เรย์ทั้งหมดจะถูกจัดสรรเป็นหน่วยความจำเดี่ยวและแต่ละองค์ประกอบจะมีพื้นที่ว่างในอาร์เรย์ เมื่อกำหนดอาร์เรย์แล้วขนาดของไฟล์จะได้รับการแก้ไข ดังนั้นถ้าคุณไม่แน่ใจเกี่ยวกับขนาดของอาร์เรย์ที่รวบรวมเวลาคุณจะต้องกำหนดอาร์เรย์ขนาดใหญ่พอที่จะอยู่ในด้านความปลอดภัย แต่ส่วนมากแล้วเราจะใช้องค์ประกอบน้อยกว่าที่เราจัดสรรไว้ ดังนั้นจำนวนมากของหน่วยความจำจะเสียจริง ในทางกลับกันถ้า "อาร์เรย์ขนาดใหญ่พอ" ไม่ใหญ่เพียงพอโปรแกรมจะผิดพลาด |
ความแตกต่างระหว่าง Pointers and Arrays คืออะไร?
ตัวชี้เป็นชนิดข้อมูลที่จัดเก็บที่อยู่ของตำแหน่งหน่วยความจำซึ่งเก็บข้อมูลบางส่วนไว้ขณะที่อาร์เรย์เป็นโครงสร้างข้อมูลที่ใช้มากที่สุดเพื่อจัดเก็บชุดขององค์ประกอบ ในภาษาโปรแกรม C การทำดัชนีอาร์เรย์ทำได้โดยใช้ตัวชี้เลข (i. e องค์ประกอบ x ของอาร์เรย์ x จะเท่ากับ * (x + i))ดังนั้นใน C, ชุดของตัวชี้ที่ชี้ไปยังชุดของสถานที่หน่วยความจำที่ติดต่อกันสามารถคิดเป็นอาร์เรย์ นอกจากนี้มีความแตกต่างในวิธีการดำเนินการ sizeof ดำเนินการเกี่ยวกับคำแนะนำและอาร์เรย์ เมื่อนำไปใช้กับอาร์เรย์ตัวดำเนินการ sizeof จะส่งกลับขนาดทั้งหมดของอาร์เรย์ในขณะที่เมื่อนำไปใช้กับตัวชี้ก็จะส่งกลับเพียงขนาดของตัวชี้