ตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวแปรอื่น
การประกาศตัวชี้ การเริ่มต้น และการเข้าถึง
พิจารณาข้อความต่อไปนี้ −
int qty = 179;
การประกาศตัวชี้
int *p;
'p' คือตัวแปรตัวชี้ที่เก็บที่อยู่ของตัวแปรจำนวนเต็มอื่น
การเริ่มต้นของตัวชี้
ตัวดำเนินการที่อยู่ (&) ใช้เพื่อเริ่มต้นตัวแปรตัวชี้
int qty = 175; int *p; p= &qty;
มาลองพิจารณาตัวอย่างว่าพอยน์เตอร์มีประโยชน์อย่างไรในการเข้าถึงองค์ประกอบในอาร์เรย์ของสตริง
ในโปรแกรมนี้ เรากำลังพยายามเข้าถึงองค์ประกอบที่มีอยู่ ณ ตำแหน่งใดตำแหน่งหนึ่ง สามารถค้นหาตำแหน่งได้โดยใช้การดำเนินการ
โดยการเพิ่มตัวชี้ที่เพิ่มล่วงหน้าไปยังสตริงตัวชี้ที่เพิ่มล่วงหน้าและการลบ 32 คุณจะได้รับค่าที่ตำแหน่งนั้น
ตัวอย่าง
#include<stdio.h> int main(){ char s[] = {'a', 'b', 'c', '\n', 'c', '\0'}; char *p, *str, *str1; p = &s[3]; str = p; str1 = s; printf("%d", ++*p + ++*str1-32); return 0; }
ผลลัพธ์
77
คำอธิบาย
p = &s[3]. i.e p = address of '\n'; str = p; i.e str = address of p; str1 = s; str1 = address of 'a'; printf ("%d", ++*p + ++*str1 - 32); i.e printf("%d", ++\n + a -32); i.e printf("%d", 12 + 97 -32); i.e printf("%d", 12 + 65); i.e printf("%d", 77); Thus 77 is outputted