ডাবল পয়েন্টার বা পয়েন্টার থেকে পয়েন্টার হল একটি পরিবর্তনশীল যা অন্য পয়েন্টারের ঠিকানা ধরে রাখে।
একটি পয়েন্টার -
-এ নির্দেশকের জন্য ঘোষণা নিম্নরূপdatatype ** pointer_name;
উদাহরণস্বরূপ, int **p; p হল পয়েন্টার থেকে একটি পয়েন্টার
শুরু করা − '&' প্রাথমিককরণের জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ,
int a = 10; int *p; int **q; p = &a;
অ্যাক্সেস করা হচ্ছে − ইনডাইরেকশন অপারেটর (*) অ্যাক্সেস করার জন্য ব্যবহার করা হয়।
উদাহরণ
পয়েন্টার থেকে পয়েন্টার -
এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int A = 10; int *p; int **q; p = &A; q = &p; printf("A =%d",A); printf("A value of pointer = %d", *p); printf("A value of double pointer = %d", **q); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
A=10 A value of pointer = 10 A value of double pointer = 10
অকার্যকর পয়েন্টার
এটি এমন এক ধরনের পয়েন্টার যা যেকোনো ডেটাটাইপ ভেরিয়েবলের ঠিকানা ধরে রাখতে পারে (বা) যেকোনো ডেটাটাইপ ভেরিয়েবলকে নির্দেশ করতে পারে।
নিম্নে অকার্যকর পয়েন্টার -
-এর ঘোষণা দেওয়া হলvoid *pointername;
উদাহরণস্বরূপ, void *vp;
অ্যাক্সেস করা হচ্ছে − টাইপ কাস্ট অপারেটর হল একটি ভেরিয়েবলের মান তার পয়েন্টারের মাধ্যমে অ্যাক্সেস করার জন্য৷
সিনট্যাক্স নিম্নরূপ -
* ( (type cast) void pointer)
উদাহরণস্বরূপ,
int i=10; void *vp; vp = &i; printf ("%d", * ((int*) vp)); type cast
উদাহরণ
শূন্য পয়েন্টার -
-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> 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