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

อธิบายแนวคิดในการเข้าถึงตัวชี้ในภาษาซี


ตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวแปรอื่น

การประกาศตัวชี้ การเริ่มต้น และการเข้าถึง

พิจารณาข้อความต่อไปนี้ −

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