পয়েন্টার কী?
সমস্ত ভাষায়, পয়েন্টার হ'ল এক ধরণের ভেরিয়েবল যা মেমোরি ঠিকানা সঞ্চয় করে এবং আপনি তাদেরকে যে ঠিকানাটি দেখিয়ে দিচ্ছেন বা যে ঠিকানাটিতে তারা নির্দেশ করছেন সেটির মান বলতে আপনাকে জিজ্ঞাসা করতে পারেন ।
একটি পয়েন্টারটিকে বইয়ের চিহ্ন হিসাবে বাছাই করা যায়। বইয়ের কোনও পৃষ্ঠায় দ্রুত ঝাঁপিয়ে পড়ার পরিবর্তে, পয়েন্টারটি মেমরির ব্লকগুলি বা মানচিত্রের জন্য ব্যবহার করতে ব্যবহৃত হয়।
আপনার প্রোগ্রামটির মেমরিটি অবিকল 65535 বাইটের একটি বড় অ্যারের মতো কল্পনা করুন।
পয়েন্টারগুলি আনুগত্যের সাথে নির্দেশ করে
পয়েন্টারগুলি প্রতিটি একটি মেমরি ঠিকানা মনে রাখে এবং সেজন্য তারা প্রত্যেকে মেমরিতে একক ঠিকানার দিকে নির্দেশ করে।
একটি গোষ্ঠী হিসাবে, পয়েন্টারগুলি আপনার প্রতিটি কমান্ড বিজ্ঞাপনের nauseum মান্য করে মেমরি ঠিকানাগুলি স্মরণ করে এবং পুনরায় স্মরণ করে।
আপনি তাদের রাজা।
সি # তে পয়েন্টার
বিশেষত সি # তে, একটি পয়েন্টার হল একটি পূর্ণসংখ্যার পরিবর্তনশীল যা 0 এবং 65534 এর মধ্যে একটি মেমরি ঠিকানা সঞ্চয় করে।
সি # তেও নির্দিষ্ট, পয়েন্টারগুলি টাইপ ইনট এবং তাই স্বাক্ষরিত।
আপনি যদিও নেতিবাচক নম্বরযুক্ত ঠিকানা ব্যবহার করতে পারবেন না, আপনি 65534 এর উপরে কোনও ঠিকানাও অ্যাক্সেস করতে পারবেন না so
মাইপয়েন্টার নামক একটি পয়েন্টারটি এভাবে ঘোষণা করা হয়:
int * মাইপয়েন্টার;
সি # তে একটি পয়েন্টার একটি অন্তর্নিহিত, তবে সি # তে মেমরি ঠিকানাগুলি 0 থেকে শুরু হয় এবং 65534 পর্যন্ত প্রসারিত হয়।
মূল বিষয়গুলি অতিরিক্ত বিশেষ যত্ন সহ পরিচালনা করা উচিত
অনিরাপদ শব্দটি একটি খুব ভাল কারণে আপনি ভীতি অভিপ্রেত, এবং: পয়েন্টার সূচালো জিনিস, এবং সূচালো জিনিষ যেমন তলোয়ার, অক্ষ, পয়েন্টার, ইত্যাদি অতিরিক্ত বিশেষ যত্ন নিয়ে নাড়াচাড়া করতে হবে হয়।
পয়েন্টার প্রোগ্রামারকে কোনও সিস্টেমের শক্ত নিয়ন্ত্রণ দেয়। সুতরাং করা ভুলগুলি আরও গুরুতর পরিণতি হতে পারে।
পয়েন্টারগুলি ব্যবহার করতে, আপনার প্রোগ্রামের বৈশিষ্ট্যগুলিতে অনিরাপদ কোডটি সক্ষম করতে হবে এবং পয়েন্টারগুলি অনিরাপদ হিসাবে চিহ্নিত পদ্ধতিতে বা ব্লকগুলিতে একচেটিয়াভাবে ব্যবহার করতে হবে।
অনিরাপদ ব্লকের উদাহরণ
unsafe
{
// Place code carefully and responsibly here.
}
পয়েন্টার কীভাবে ব্যবহার করবেন
যখন ভেরিয়েবল বা অবজেক্টগুলি ঘোষিত বা তাত্ক্ষণিকভাবে প্রকাশ করা হয় তখন এগুলি মেমরিতে সংরক্ষণ করা হয়।
- * প্রতীক উপসর্গটি ব্যবহার করে একটি পয়েন্টার ঘোষণা করুন।
int *MyPointer;
- কোনও ভেরিয়েবলের ঠিকানা পেতে, আপনি & প্রতীক উপসর্গটি ব্যবহার করুন।
MyPointer = &MyVariable;
একবার কোনও পয়েন্টারের কাছে ঠিকানা নির্ধারিত হয়ে গেলে, নিম্নলিখিতটি প্রয়োগ হয়:
- * প্রিফিক্স ব্যতীত মেমরির ঠিকানাটি উল্লেখ করার জন্য কোনও int হিসাবে নির্দেশ করা হচ্ছে।
MyPointer = &MyVariable; // Set MyPointer to point at MyVariable
- * প্রিফিক্স সহ মেমরি ঠিকানার দিকে সঞ্চিত মানটি নির্দেশ করা হচ্ছে।
"MyPointer is pointing at " + *MyPointer;
যেহেতু পয়েন্টারটি একটি ভেরিয়েবল যা একটি মেমরি ঠিকানা রাখে, তাই এই মেমরি ঠিকানাটি একটি পয়েন্টার ভেরিয়েবলে সংরক্ষণ করা যায়।
পয়েন্টারগুলির উদাহরণটি সতর্কতার সাথে এবং দায়িত্বের সাথে ব্যবহার করা হচ্ছে
public unsafe void PointerTest()
{
int x = 100; // Create a variable named x
int *MyPointer = &x; // Store the address of variable named x into the pointer named MyPointer
textBox1.Text = ((int)MyPointer).ToString(); // Displays the memory address stored in pointer named MyPointer
textBox2.Text = (*MyPointer).ToString(); // Displays the value of the variable named x via the pointer named MyPointer.
}
লক্ষ্য করুন যে পয়েন্টারের ধরণটি একটি অন্তর্নিহিত। এটি কারণ সি # মেমরি ঠিকানাগুলিকে পূর্ণসংখ্যার সংখ্যা (ইন্ট) হিসাবে ব্যাখ্যা করে।
এটি ইউন্টের পরিবর্তে কেন?
কোনও ভাল কারণ নেই।
পয়েন্টার কেন ব্যবহার করবেন?
পয়েন্টারগুলি অনেক মজাদার। কম্পিউটারের প্রচুর পরিমাণ মেমোরি দ্বারা নিয়ন্ত্রিত হওয়ার সাথে সাথে পয়েন্টারগুলি তাদের প্রোগ্রামের মেমরির আরও নিয়ন্ত্রণের সাথে একটি প্রোগ্রামারকে শক্তিশালী করে।
স্মৃতি পর্যবেক্ষণ।
মেমরির ব্লকগুলি পড়তে পয়েন্টারগুলি ব্যবহার করুন এবং সময়ের সাথে মানগুলি কীভাবে পরিবর্তিত হচ্ছে তা নিরীক্ষণ করুন।
এই মানগুলি দায়িত্বপূর্ণভাবে পরিবর্তন করুন এবং আপনার পরিবর্তনগুলি আপনার কম্পিউটারে কীভাবে প্রভাবিত করে তা ট্র্যাক করে রাখুন।