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

ความแตกต่างระหว่าง Array และ Pointers ใน C.


Array ใน C ใช้เพื่อเก็บองค์ประกอบประเภทเดียวกันในขณะที่ Pointers เป็นตัวแปรที่อยู่ซึ่งเก็บที่อยู่ของตัวแปร ตอนนี้ตัวแปรอาร์เรย์ยังมีที่อยู่ซึ่งสามารถชี้ได้ด้วยตัวชี้และอาร์เรย์สามารถนำทางได้โดยใช้ pointer.r ประโยชน์ของการใช้ตัวชี้สำหรับอาร์เรย์คือสองเท่า อันดับแรก เราเก็บที่อยู่ของอาร์เรย์ที่จัดสรรแบบไดนามิกไว้กับตัวชี้และตัวที่สอง เพื่อส่งผ่านอาร์เรย์ไปยังฟังก์ชัน ต่อไปนี้เป็นข้อแตกต่างในการใช้อาร์เรย์และการใช้ตัวชี้ไปยังอาร์เรย์

  • ตัวดำเนินการ sizeof() พิมพ์ขนาดของอาร์เรย์ในกรณีของอาร์เรย์ และในกรณีของพอยน์เตอร์ จะพิมพ์ขนาดของ int

  • งาน ตัวแปรอาร์เรย์ไม่สามารถกำหนดแอดเดรสของตัวแปรอื่นได้ แต่พอยน์เตอร์ใช้ได้

  • ค่าแรก ค่าดัชนีแรกจะเหมือนกับค่าของตัวชี้ ตัวอย่างเช่น array[0] ==*p.

  • การทำซ้ำ องค์ประกอบอาร์เรย์สามารถนำทางได้โดยใช้ดัชนีโดยใช้ [] ตัวชี้สามารถให้การเข้าถึงองค์ประกอบอาร์เรย์โดยใช้เลขคณิตของตัวชี้ ตัวอย่างเช่น อาร์เรย์[2] ==*(p+2)

ตัวอย่าง (C)

#include <stdio.h>
void printElement(char* q, int index){
   printf("Element at index(%d) is: %c\n", index, *(q+index));
}
int main() {
   char arr[] = {'A', 'B', 'C'};
   char* p = arr;
   printf("Size of arr[]: %d\n", sizeof(arr));
   printf("Size of p: %d\n", sizeof(p));
   printf("First element using arr is: %c\n", arr[0]);
   printf("First element using p is: %c\n", *p);
   printf("Second element using arr is: %c\n", arr[1]);
   printf("Second element using p is: %c\n", *(p+1));
   printElement(p, 2);
   return 0;
}

ผลลัพธ์

Size of arr[]: 3
Size of p: 8
First element using arr is: A
First element using p is: A
Second element using arr is: B
Second element using p is: B
Element at index(2) is: C