পয়েন্টার এবং রেফারেন্স মধ্যে পার্থক্য | পয়েন্টার বনাম রেফারেন্স

Anonim

কী পার্থক্য - পয়েন্টার বনাম রেফারেন্স

পয়েন্টার এবং রেফারেন্সের মধ্যে পার্থক্য নিয়ে আলোচনা করার আগে, প্রথমে আমরা এই দুটি পদের অর্থ সংক্ষেপে দেখি। একটি প্রোগ্রাম, তথ্য মেমরি দখল তাদের অ্যাক্সেস করার জন্য একটি মৃত্যুদন্ডের সময় যে ডেটাটি স্থাপন করা হয়েছিল তার সঠিক অবস্থান জানানো উচিত। পয়েন্টার ভেরিয়েবলস এবং রেফারেন্স ভেরিয়েবলস এই ডেটা অ্যাক্সেস করতে এবং মেমরি অ্যাড্রেসগুলি ব্যবহার করতে ব্যবহার করে। যে, উভয় পয়েন্টার এবং রেফারেন্স পরোক্ষভাবে বস্তু বোঝাতে ব্যবহার করা যেতে পারে। তারা মূলত তাদের মান হিসাবে মেমরি ঠিকানা রাখা মূল পার্থক্য একটি পয়েন্টার এবং একটি রেফারেন্সের মধ্যে যে একটি পয়েন্টার একটি পরিবর্তনশীল যা অন্য ভেরিয়েবলের মেমরি অবস্থার ঠিকানা সংরক্ষণ করে একটি রেফারেন্স উল্লেখ করে একটি পরিবর্তনশীল অন্য ভেরিয়েবলে দুটি প্রক্রিয়া, পয়েন্টার এবং রেফারেন্স, বিভিন্ন সিনট্যাক্স এবং ব্যবহার আছে

একটি পয়েন্টার কি?

একটি পয়েন্টার হল একটি প্রোগ্রামিং ল্যাংগুয়েজ অবজেক্ট যা কম্পিউটিং মেমরির মান এর মেমরি অ্যাড্রেস সংরক্ষণ করে।

সি ++ সিনট্যাক্সে;

int i = 5;

int * ptr = & i;

প্রথম লাইনটি 5 এর মান সহ একটি ভেরিয়েবলকে সংজ্ঞায়িত করে। দ্বিতীয় লাইনে পরিবর্তনশীল মেমরি অ্যাড্রেস এ পয়েন্টার সংজ্ঞায়িত করে। এখানে, 'PTR' টাইপ 'বস্তুর একটি পয়েন্টার' হিসাবে ঘোষিত হয় যার প্রাথমিক মান অবজেক্টের ঠিকানা। তার মেমরি অ্যাড্রেসটি সংরক্ষণ করে আমি মূলত ptr পরিবর্তনশীল পয়েন্টগুলি

--২ ->

মেমরি অবস্থানে সংরক্ষিত মানটি প্রাপ্ত করা হচ্ছে ডিরেফারেন্সিং । * অপারেটর পয়েন্টার dereference করার জন্য ব্যবহার করা হয়। ঘোষণাগুলি সম্পন্ন হওয়ার পর, পরোক্ষ অভিব্যক্তি * ptr dereferences ptr দ্বারা i।

i এর মান পরিবর্তন করতে, নিম্নলিখিত কাজটি ব্যবহার করা যেতে পারে;

* ptr = 20;

বিভিন্ন বস্তুর সাথে সাথে পয়েন্টারগুলিকেও পুনঃনির্ধারণ করা যেতে পারে।

একটি নল পয়েন্টার একটি বিশেষ ধরনের পয়েন্টার। একটি নল পয়েন্টারটি প্রায়ই 0 বা নাল দ্বারা নির্দিষ্ট করা হয় এবং পয়েন্টটিকে কিছুই না। পয়েন্টারের জন্য নির্ধারিত সঠিক ঠিকানা না থাকার ক্ষেত্রে একটি নল পয়েন্টার ব্যবহার করার জন্য এটি ভাল অনুশীলন। এই নিয়োগ লজিকাল অপারেশন এবং শর্তাবলী ব্যবহার করা যেতে পারে।

পয়েন্টারগুলি গতিশীল বরাদ্দকৃত মেমরির ঠিকানা সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হতে পারে পয়েন্টারগুলি ব্যবহার করে ডেটা স্ট্রাকচার যেমন স্ট্যাক, সারি, এবং তালিকাগুলি বাস্তবায়ন ও নিয়ন্ত্রন করা যায় সেটি কার্যকর করা যায়। উদাহরণস্বরূপ, একটি সারিতে দুটি পয়েন্টার থাকতে পারে; মাথা পয়েন্টার এবং পুচ্ছ পয়েন্টারপয়েন্টারগুলি তাদের ঠিকানা দ্বারা ভেরিয়েবল পাস করতে ব্যবহার করা যেতে পারে, যা মানকে পরিবর্তিত করার অনুমতি দেবে। পয়েন্টারগুলি ব্যবহার করে সরাসরি পরিচালিত মেমরি বা মেমোরি-ম্যাপ করা ডিভাইসগুলিকে পরিচালনাও করা যায়।

পয়েন্টার সুরক্ষিত এবং অরক্ষিত মেমরি অ্যাক্সেস উভয় অ্যাক্সেস অনুমতি দেয়। অতএব, একটি পয়েন্টার বিষয়বস্তু বৈধ কিনা তা যাচাই করতে প্রয়োজনীয় সতর্কতা গ্রহণ করা আবশ্যক। অন্যথা, একটি অবৈধ মেমরির ঠিকানা সহ একটি পয়েন্টারকে dereferencing প্রোগ্রাম ক্র্যাশ হতে পারে।

পয়েন্টারগুলি ভাষা যেমন সি, সি ++, পাসকাল এবং অনেক অ্যাসেম্বলি ভাষাগুলিতে সমর্থিত।

পয়েন্টার একটি ভেরিয়েবল বি সাথে যুক্ত মেমরির ঠিকানাতে নির্দেশ করে

একটি রেফারেন্স কি?

একটি রেফারেন্সটি কেবল একটি মেমরি সংরক্ষণকৃত মান জন্য বিকল্প শনাক্তকারী । এটি একটি প্রোগ্রামকে পরোক্ষভাবে একটি নির্দিষ্ট উপাত্ত অ্যাক্সেস করতে সক্ষম করে।

সি ++ সিনট্যাক্সে;

int i = 5;

স্ব এবং রেফার = i;

প্রথম লাইনটি 5 এর মান সহ একটি ভেরিয়েবলকে সংজ্ঞায়িত করে। দ্বিতীয় লাইনটি 'রেফ' বলে একটি প্রকারের 'int reference' যা 'i একটি রেফারেন্স স্বতন্ত্র তথ্য থেকে আলাদা হয় যা একটি নির্দিষ্ট তথ্য নির্দিষ্ট ডেটামের ভৌত ঠিকানা হিসাবে প্রয়োগ করা হয় যা মেমরিতে সংরক্ষণ করা হয়।

একবার সংজ্ঞায়িত করা হলে, একটি রেফারেন্স একটি নতুন মান পুনরায় নির্ধারণ করা যাবে না। একটি রেফারেন্স সর্বদা বস্তুকে নির্দেশ করে যা দিয়ে এটি আরম্ভ করা হয়। নিম্নোক্ত নিয়োগে, রেফ এখনও আমি বোঝায়, কিন্তু এখন মূল্য 20।

রেফার = 20;

উপরে উল্লিখিত মতে, Dereferencing রেফারেন্সগুলির জন্য কোন অপারেটর প্রয়োজন হয় না।

একটি পরিবর্তনশীল সর্বদা একটি বস্তুর পড়ুন যখন রেফারেন্স ব্যবহার করা যেতে পারে। এটি কারণ, পয়েন্টারের বিপরীত, রেফারেন্সগুলি নকল হতে পারে না এবং সর্বদা শুরুতে নিয়োগ করা উচিত। যেহেতু রেফারেন্সগুলি অবশ্যই কিছু অবজেক্টকে উল্লেখ করতে হবে, যেমন একটি পরিবর্তনশীল তৈরীর একটি রেফারেন্স প্রোগ্রামটি দক্ষতা এবং সঠিকভাবে কাজ করবে তা নিশ্চিত করে। যে, কোন নাল রেফারেন্স আছে, একটি রেফারেন্স পরিবর্তনশীল এর বৈধতা পরীক্ষা করা হবে না।

রেফারেন্স ভেরিয়েবলগুলি কার্যকর পদ্ধতিতে কার্যকরী পদ্ধতিতে আর্গুমেন্ট রূপে বৃহত্তর তথ্য পাস করতে পারে বিভিন্ন কোড বিভিন্ন কোড এলাকার মধ্যে বড় ডেটা ভাগ করার জন্য রেফারেন্সগুলি ব্যবহার করা হয় কারণ প্রতিটি কোড ডেটার একটি রেফারেন্স রাখে।

প্রোগ্রামিং ভাষা যেমন সি ++, জাভা, পাইথন, পার্ল, পিএইচপি, রুবি, ইত্যাদি সমর্থন রেফারেন্স।

পয়েন্টার এবং রেফারেন্সের মধ্যে পার্থক্য কি?

পয়েন্টার এবং রেফারেন্সের সংজ্ঞা

পয়েন্টার:

একটি পয়েন্টার কম্পিউটিং মেমরিতে সংরক্ষিত বস্তুর মেমরি অ্যাড্রেস। রেফারেন্স:

একটি রেফারেন্স একটি অবজেক্টের জন্য একটি বিকল্প শনাক্তকারী বা একটি উপনাম। পয়েন্টার এবং রেফারেন্সের বৈশিষ্ট্য

ঘোষণা

পয়েন্টার:

একটি পয়েন্টার * অপারেটরের সাথে ঘোষণা করা হয়। রেফারেন্স:

অপারেটরের সাথে একটি রেফারেন্স ঘোষিত হয়। Dereferencing

পয়েন্টার:

একটি পয়েন্টার ভেরিয়েবলের জন্য * অপারেটরকে ডিরেফারেন্সের প্রয়োজন। রেফারেন্স:

একটি রেফারেন্স ভেরিয়েবলের জন্য কোনও অপারেটরের প্রয়োজন নেই। সূচনা

পয়েন্টার:

পয়েন্টারগুলি বাতিল করা যেতে পারে।এই ধরনের ভেরিয়েবলগুলিকে বলা হয় নল পয়েন্টার। রেফারেন্স:

রেফারেন্সগুলি খালি করা যাবে না। একটি নাল রেফারেন্স যেমন কোন জিনিস নেই একটি রেফারেন্স সবসময় একটি বস্তুর পড়ুন আবশ্যক। পুনর্ব্যবহারযোগ্য

পয়েন্টার:

বিভিন্ন বস্তুর নির্দেশনার জন্য একটি পয়েন্টার ভেরিয়েবলকে পুনঃনির্ধারণ করা যেতে পারে। রেফারেন্স:

একটি রেফারেন্স ভেরিয়েবল পুনঃনির্ধারণ করা যাবে না। এটি সর্বদা বস্তুকে বোঝায় যা দিয়ে এটি আরম্ভ করা হয়েছিল। ব্যবহার

পয়েন্টার:

পয়েন্টার ভেরিয়েবল ব্যবহার করা উচিত যখন কোন কিছুই উল্লেখ করার সম্ভাবনা নেই বা যখন বিভিন্ন সময়ে বিভিন্ন জিনিসগুলি উল্লেখ করা প্রয়োজন। রেফারেন্স:

রেফারেন্স ভেরিয়েবল ব্যবহার করা উচিত যখন সর্বদা একটি অবজেক্ট থাকবে এবং যখন ঐ রেফারেন্স ভেরিয়েবলটি ব্যবহার করার প্রয়োজন হয় না তখন যে বস্তুর ব্যতীত অন্য কোনও অংশকে বোঝায় না। ব্যবহারের প্রয়োগ

পয়েন্টার:

পয়েন্টার ভেরিয়েবলগুলি এলগরিদম এবং ডেটা স্ট্রাকচারগুলি বাস্তবায়নে ব্যবহার করা যেতে পারে। রেফারেন্স:

রেফারেন্স ভেরিয়েবলগুলি ফাংশন প্যারামিটারে ব্যবহার করা যেতে পারে, এবং ফেরত প্রকারগুলি দরকারী ইন্টারফেস নির্ধারণ করে। ব্যবহৃত ভাষা:

পয়েন্টার:

প্রোগ্রামিং ভাষা যেমন সি, সি ++, পাসকাল এবং অনেক অ্যাসেম্বলি ভাষার সমর্থন পয়েন্টার। রেফারেন্স:

প্রোগ্রামিং ভাষা যেমন সি ++, জাভা, পাইথন, পার্ল, পিএইচপি, রুবি, ইত্যাদি সমর্থন রেফারেন্স। চিত্র সৌজন্যে: এই ফাইল দ্বারা "পয়েন্টার" ব্যবহারকারী দ্বারা তৈরি করা হয়েছে: SvenTranslation। নিজের কাজ. এই ভেক্টর ইমেজ ইঙ্ক্স্জ্্্্্্্্্্্্্্্্্্্্ (সিসি বাই-এসএ 3. 0) কমন্স মাধ্যমে -