พอยน์เตอร์และอาร์เรย์โดยส่วนใหญ่ถือว่าเหมือนกันในค ความแตกต่างบางประการได้แก่:
&ตัวดำเนินการ:
-
&pointer =ส่งกลับที่อยู่ของตัวชี้
-
&array =ส่งกลับที่อยู่ขององค์ประกอบแรก
ตัวดำเนินการขนาด:
-
sizeof(array) =ส่งคืนหน่วยความจำทั้งหมดที่ใช้โดยองค์ประกอบทั้งหมดของอาร์เรย์
-
sizeof(pointer) =คืนค่าหน่วยความจำเดียวที่ใช้โดยตัวแปรตัวชี้เอง
ตัวแปรอาร์เรย์ไม่สามารถกำหนดค่าใหม่ได้ในขณะที่ตัวแปรตัวชี้สามารถทำได้
ประกาศ:
int a[]; //array Int *p; //pointer
ให้เราพิจารณาว่ามีตัวแปรตัวชี้จำนวนเต็ม
int *i;
ตอนนี้ให้เราพิจารณาผลลัพธ์ของการมอบหมายต่อไปนี้ –
a = &i; //illegal assignment. a variable can not be updated or modified. p = &i; //legal assignment.