মেমরি মডেল এবং সেগমেন্টের উপর নির্ভর করে, পয়েন্টারগুলিকে তিন প্রকারে শ্রেণীবদ্ধ করা হয় -
- পয়েন্টারের কাছাকাছি
- দূর নির্দেশক
- বিশাল পয়েন্টার
পয়েন্টারের কাছাকাছি
-
এটি একটি পয়েন্টার যা মেমরির 64Kb ডেটা সেগমেন্টের পরিসরে কাজ করে।
-
এটি সেই ডেটা সেগমেন্টের বাইরে ঠিকানা অ্যাক্সেস করতে পারে না৷
-
একটি কাছাকাছি পয়েন্টার একটি গাণিতিক অপারেটর ব্যবহার করে ঠিকানা পরিসীমা বৃদ্ধি বা হ্রাস করা যেতে পারে৷
-
কাছাকাছি কীওয়ার্ড দিয়ে, আমরা যেকোনো পয়েন্টারকে কাছাকাছি পয়েন্টার হিসেবে তৈরি করতে পারি।
সিনট্যাক্স
সিনট্যাক্স নিম্নরূপ -
<data type> near <pointer definition> <data type> near <function definition>
নিম্নলিখিত বিবৃতিটি পরিবর্তনশীল s
-এর জন্য একটি কাছাকাছি পয়েন্টার ঘোষণা করেchar near *string;
প্রোগ্রাম
নিম্নলিখিত প্রোগ্রাম কাছাকাছি পয়েন্টার ব্যবহার দেখায়.
#include<stdio.h> int main(){ int number=50; int near* p; p=&number; printf("%d",sizeof(p)); return 0; }
আউটপুট
আউটপুট নিম্নরূপ -
2
দূর পয়েন্টার
-
এটি একটি পয়েন্টার যা অফসেট এবং সেগমেন্ট ঠিকানা উভয়ই সঞ্চয় করে যেখানে পয়েন্টারটি আলাদা।
-
এটি সমস্ত 16টি সেগমেন্ট অ্যাক্সেস করতে পারে৷
৷ -
একটি দূরের পয়েন্টার ঠিকানা 0 থেকে 1MB পর্যন্ত।
-
যখন পয়েন্টার বৃদ্ধি বা হ্রাস করা হয়, শুধুমাত্র অফসেট অংশ পরিবর্তন হয়।
সিনট্যাক্স
বাক্য গঠন নিচে দেওয়া হল -
<data type> far <pointer definition> <data type> far <function definition>
নিম্নলিখিত বিবৃতিগুলি পরিবর্তনশীল s
-এর জন্য একটি দূর নির্দেশক ঘোষণা করেchar far *s;
প্রোগ্রাম
নিম্নলিখিত প্রোগ্রামটি দূর পয়েন্টারের ব্যবহার দেখায়।
#include<stdio.h> int main(){ int number=50; int far *p; p=&number; printf("%d",sizeof number); return 0; }
আউটপুট
আউটপুট নিম্নরূপ -
4
বিশাল পয়েন্টার
-
এটি একটি পয়েন্টার যা আকারের দিক থেকে দূরের পয়েন্টারের মতো কারণ, উভয়ই 32-বিট ঠিকানা।
-
বিশাল পয়েন্টারটি সেগমেন্টের কাজের রাউন্ডের সাথে কষ্ট না করে বৃদ্ধি করা যেতে পারে।
প্রোগ্রাম
নিম্নলিখিত প্রোগ্রামটি বিশাল পয়েন্টারের ব্যবহার দেখায়।
#include<stdio.h> Int main(){ Char huge *far *ptr; Printf("%d%d%d",sizeof(ptr),sizeof(*ptr),sizeof(**ptr)); Return 0; }
আউটপুট
আউটপুট নিম্নরূপ -
4 4 1