পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের অ্যাড্রেস সংরক্ষণ করে। সিনট্যাক্স: pointer = &variable;
পয়েন্টারের ৮ ধরন
- নাল পয়েন্টার (Null Pointer)
- ভয়েড পয়েন্টার (Void Pointer)
- ওয়াইল্ড পয়েন্টার (Wild Pointer)
- ড্য앵লিং পয়েন্টার (Dangling Pointer)
- কমপ্লেক্স পয়েন্টার (Complex Pointer)
- নিয়ার পয়েন্টার (Near Pointer)
- ফার পয়েন্টার (Far Pointer)
- হিউজ পয়েন্টার (Huge Pointer)
নাল পয়েন্টার
ঘোষণার সময় NULL অ্যাসাইন করে তৈরি করা হয়। কোনো অ্যাড্রেস অ্যাসাইন না করার সময় ব্যবহারী। মান সবসময় ০।
#include <stdio.h>
int main() {
int *ptr = NULL;
printf("The value inside variable ptr is:\n%d", ptr);
return 0;
}
আউটপুট: The value inside variable ptr is: 0
ভয়েড পয়েন্টার
কোনো ডেটা টাইপ নেই। যেকোনো টাইপের অ্যাড্রেস ধারণ করতে পারে এবং যেকোনো টাইপে টাইপকাস্ট করা যায়। জেনেরিক পয়েন্টার বলা হয়। void কীওয়ার্ড দিয়ে তৈরি।
#include <stdio.h>
int main() {
void *p = NULL;
printf("The size of pointer is:%d\n", sizeof(p));
return 0;
}
আউটপুট: The size of pointer is:8
ওয়াইল্ড পয়েন্টার
ইনিশিয়ালাইজড না থাকা পয়েন্টার। অগোচর মেমরি লোকেশনে পয়েন্ট করে, প্রোগ্রাম ক্র্যাশ হতে পারে। সতর্কতার সাথে ব্যবহার করতে হয়।
#include <stdio.h>
int main() {
int *p; // wild pointer
printf("\n%d", *p); // এরর বা ক্র্যাশ
return 0;
}
আউটপুট: প্রসেস রিটার্নড -1073741819 (0xC0000005) এক্সিকিউশন টাইম: 1.206 s