পয়েন্টারের অ্যারে
অন্য যেকোনো ডাটা টাইপের মতো, আমরাও একটি পয়েন্টার অ্যারে ঘোষণা করতে পারি।
ঘোষণা
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]); উদাহরণ
#include<stdio.h>
main (){
int a[3] = {10,20,30};
int *p[3],i;
for (i=0; i<3; i++)
p[i] = &a[i]; //initializing base address of array
printf (elements of the array are”)
for (i=0; i<3; i++)
printf ("%d \t", *p[i]); //printing array of pointers
getch();
} আউটপুট
elements at the array are : 10 20 30
পয়েন্টার থেকে পয়েন্টার
পয়েন্টার থেকে পয়েন্টার হল একটি পরিবর্তনশীল যা অন্য পয়েন্টারের ঠিকানা ধরে রাখে।
ঘোষণা
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 through pointer = %d", *p);
printf("a value through pointer to pointer = %d", **q);
} আউটপুট
a=10 a value through pointer = 10 a value through pointer to pointer = 10