ตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวแปรอื่น
พิจารณาข้อความต่อไปนี้ −
int qty = 179;

การประกาศตัวชี้
ไวยากรณ์สำหรับการประกาศตัวชี้มีดังนี้ −
int *p;
โดยที่ 'p' คือตัวแปรตัวชี้ซึ่งเก็บที่อยู่ของตัวแปรอื่นไว้
การเริ่มต้นของตัวชี้
ตัวดำเนินการที่อยู่ (&) ใช้เพื่อเริ่มต้นตัวแปรตัวชี้
ตัวอย่างเช่น
int qty = 175; int *p; p= &qty;
อาร์เรย์ของพอยน์เตอร์
เป็นการรวบรวมที่อยู่ (หรือ) การรวบรวมตัวชี้
ประกาศ
ต่อไปนี้เป็นการประกาศอาร์เรย์ของพอยน์เตอร์ -
datatype *pointername [size];
ตัวอย่างเช่น
int *p[5];
ซึ่งแสดงถึงอาร์เรย์ของพอยน์เตอร์ที่สามารถเก็บที่อยู่ขององค์ประกอบจำนวนเต็มได้ 5 รายการ
การเริ่มต้น
'&' ใช้สำหรับการเริ่มต้น
ตัวอย่างเช่น
int a[3] = {10,20,30};
int *p[3], i;
for (i=0; i<3; i++) (or) for (i=0; i<3,i++)
p[i] = &a[i];
p[i] = a+i; การเข้าถึง
ตัวดำเนินการทางอ้อม (*) ใช้สำหรับการเข้าถึง
ตัวอย่างเช่น
for (i=0, i<3; i++)
printf ("%d", *p[i]); โปรแกรม
ต่อไปนี้เป็นโปรแกรม C เพื่อคำนวณผลรวมขององค์ประกอบอาร์เรย์โดยใช้พอยน์เตอร์ -
//sum of array elements using pointers
#include <stdio.h>
#include <malloc.h>
void main(){
int i, n, sum = 0;
int *ptr;
printf("Enter size of array : \n");
scanf("%d", &n);
ptr = (int *) malloc(n * sizeof(int));
printf("Enter elements in the List \n");
for (i = 0; i < n; i++){
scanf("%d", ptr + i);
}
//calculate sum of elements
for (i = 0; i < n; i++){
sum = sum + *(ptr + i);
}
printf("Sum of all elements in an array is = %d\n", sum);
return 0;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Enter size of array: 5 Enter elements in the List 12 13 14 15 16 Sum of all elements in an array is = 70