নাল পয়েন্টার এবং ভয়েড পয়েন্টারের মধ্যে পার্থক্য হল নাল পয়েন্টার হল একটি মান এবং শূন্য পয়েন্টার হল একটি প্রকার৷
শূন্য পয়েন্টার
একটি নাল পয়েন্টার মানে এটি কিছু নির্দেশ করছে না। যদি, পয়েন্টারে বরাদ্দ করা কোনো ঠিকানা না থাকে, তাহলে সেটিকে শূন্য করে দিন।
একটি পয়েন্টার টাইপ, যেমন, int *, char * প্রতিটির একটি নাল পয়েন্টার মান থাকে।
সিনট্যাক্স নিম্নরূপ -
<data type> *<variable name> = NULL;
উদাহরণস্বরূপ,
int *p = NULL; char *p = '\0';
উদাহরণ প্রোগ্রাম
NULL পয়েন্টার -
-এর জন্য C প্রোগ্রাম নিচে দেওয়া হল#include<stdio.h> int main(){ printf("TutorialPoint C Programming"); int *p = NULL; // ptr is a NULL pointer printf("\n The value of pointer is: %x ", p); return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
TutorialPoint C Programming The value of pointer is: 0
অকার্যকর পয়েন্টার
একটি অকার্যকর পয়েন্টার আর কিছুই নয় যার সাথে এটির কোনো ডেটা টাইপ নেই। এটি একটি সাধারণ উদ্দেশ্য পয়েন্টার হিসাবেও বলা হয়। এটি যেকোনো ডেটা টাইপের ঠিকানা ধরে রাখতে পারে।
Thee সিনট্যাক্স নিম্নরূপ -
void *<data type>;
উদাহরণস্বরূপ,
void *p; int a; char c;
p =&a; //p পূর্ণসংখ্যা পয়েন্টারে পরিবর্তিত হয় যেহেতু পূর্ণসংখ্যার ঠিকানা এটিতে বরাদ্দ করা হয়
p =&c; //p ক্যারেক্টার পয়েন্টারে পরিবর্তন হয় কারণ অক্ষরের ঠিকানা এটিতে বরাদ্দ করা হয়
উদাহরণ
শূন্য পয়েন্টার -
-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> int main(){ int a = 10; void *ptr = &a; printf("%d", *(int *)ptr); return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
10