কম্পিউটার টিউটোরিয়াল

C ভাষায় পয়েন্টার টু পয়েন্টার এবং ভয়েড পয়েন্টার কনসেপ্ট ব্যাখ্যা


ডাবল পয়েন্টার বা পয়েন্টার টু পয়েন্টার হল একটি ভেরিয়েবল যা অন্য একটি পয়েন্টারের ঠিকানা ধারণ করে।

পয়েন্টার টু পয়েন্টারের ডিক্লেয়ারেশন নিম্নরূপ:

datatype **pointer_name;

উদাহরণস্বরূপ, int **p; p হল পয়েন্টার টু পয়েন্টার।

ইনিশিয়ালাইজেশন - '&' ইনিশিয়ালাইজেশনের জন্য ব্যবহৃত হয়।

উদাহরণস্বরূপ,

int a = 10; int *p; int **q; p = &a;

এক্সেসিং - ইন্ডিরেকশন অপারেটর (*) অ্যাক্সেসের জন্য ব্যবহৃত হয়।

উদাহরণ

পয়েন্টার টু পয়েন্টারের জন্য C প্রোগ্রাম নিচে দেওয়া হল:

#include  main(){    int A = 10;    int *p;    int **q;    p = &A;    q = &p;    printf("A = %d", A);    printf("পয়েন্টারের মাধ্যমে A এর মান = %d", *p);    printf("ডাবল পয়েন্টারের মাধ্যমে A এর মান = %d", **q); }

আউটপুট

উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:

A = 10 পয়েন্টারের মাধ্যমে A এর মান = 10 ডাবল পয়েন্টারের মাধ্যমে A এর মান = 10

ভয়েড পয়েন্টার

এটি একটি ধরণের পয়েন্টার যা যেকোনো ডেটা টাইপের ভেরিয়েবলের ঠিকানা ধারণ করতে পারে (অথবা) যেকোনো ডেটা টাইপের ভেরিয়েবলে পয়েন্ট করতে পারে।

ভয়েড পয়েন্টারের ডিক্লেয়ারেশন নিম্নরূপ:

void *pointername;

উদাহরণস্বরূপ, void *vp;

এক্সেসিং - টাইপ কাস্ট অপারেটর ব্যবহার করে ভেরিয়েবলের মান তার পয়েন্টার দিয়ে অ্যাক্সেস করা হয়।

সিনট্যাক্স নিম্নরূপ:

*((type cast) void pointer)

উদাহরণস্বরূপ,

int i = 10; void *vp; vp = &i; printf("%d", *((int*)vp)); // টাইপ কাস্ট

উদাহরণ

ভয়েড পয়েন্টারের জন্য C প্রোগ্রাম নিচে দেওয়া হল:

#include  main(){    int i = 10;    float f = 5.34;    void *vp;    clrscr();    vp = &i;    printf("i = %d", *((int*)vp));    vp = &f;    printf("f = %f", *((float*)vp));    getch(); }

আউটপুট

উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:

i = 10 f = 5.34
  1. সি ভাষায় অ্যারে অফ পয়েন্টার এবং পয়েন্টার টু পয়েন্টার

  2. C ভাষায় ক্যারেক্টার অপারেশন ব্যাখ্যা

  3. সি ভাষায় ইউনিয়ন টু পয়েন্টার ব্যাখ্যা

  4. সি ভাষায় পয়েন্টার অ্যাক্সেসিং ধারণা ব্যাখ্যা