فرق اور حوالہ کے درمیان فرق | پوائنٹر بمقابلہ ریفرنس

Anonim

کلیدی فرق - پوائنٹر بمقابلہ ریفرنس

پوائنٹر اور ریفرنس کے درمیان فرق پر بحث کرنے سے پہلے، ہمیں سب سے پہلے مختصر طور پر ان دونوں شرائط کے معنی کو دیکھنے دو. ایک پروگرام میں، ڈیٹا میموری پر قبضہ کرتا ہے. میموری کی صحیح جگہ جس میں اعداد و شمار پر عملدرآمد کے وقت رکھا گیا تھا انہیں ان تک رسائی حاصل کرنے کے لئے جانا جانا چاہئے. پوینٹر متغیرات اور ریفرنس متغیرات ان اعداد و شمار تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے اور میموری پتے میں ہیریپول ہیں جو وہ ہیں. یہی ہے، دونوں اشارہ اور حوالہ جات غیر مستقیم اشیاء کو حوالہ دینے کے لئے استعمال کیا جا سکتا ہے. وہ لازمی طور پر میموری پتے کو ان کی اقدار کے طور پر برقرار رکھتے ہیں. ایک 9ٹر> کلیدی فرق پوائنٹر کے درمیان اور ایک حوالہ ہے کہ ایک متغیر ایک متغیر ہے جس میں میموری متغیر کا ایڈریس اسٹور کسی اور متغیر جبکہ ایک حوالہ ایک متغیر ہے جس میں مراد ہے ایک اور متغیر. دو میکانزمیں، پوسٹر اور حوالہ جات، مختلف نحوق اور استعمال ہیں. ایک اشارہ کیا ہے؟ ایک پوائنٹر

ایک پروگرامنگ کی زبان آبجیکٹ ہے جس میں کمپیوٹنگ میموری میں

کسی قدر کے میموری ایڈریس کو اسٹور کرتا ہے.

C ++ نحو میں؛ int i = 5؛ int * ptr = & i؛

پہلی سطر ایک قیمت کے ساتھ متغیر ابتداء کی وضاحت کرتا ہے. دوسری سطر متغیر میموری ایڈریس پر پوائنٹر کی وضاحت کرتا ہے. یہاں، 'پیٹرٹ' کو ایک قسم کے 'پوائنٹر' کے طور پر قرار دیا جاتا ہے جس میں ابتدائی قیمت شے کا پتہ ہے. میرے میموری ایڈریس کو ذخیرہ کرنے کے ذریعہ بنیادی طور پر پی ٹی آر متغیر پوائنٹس.

میموری مقام پر ذخیرہ کردہ قیمت حاصل کرنا ڈیرفرننگ

کہا جاتا ہے. * آپریٹر استعمال کرنے کے لئے استعمال کیا جاتا ہے تاکہ پوائنٹر کو خارج کردیں. اعلامیے کے بعد، غیر مستقیم اظہار * ptr dereferences ptr میں حوالہ کرنے کے لئے.

میں کی قیمت کو تبدیل کرنے کے بعد، مندرجہ ذیل تفویض کا استعمال کیا جا سکتا ہے؛

* ptr = 20؛ پوائنٹس کو مختلف اشیاء کے ساتھ ساتھ حوالہ دینے کے لئے دوبارہ استعفی کیا جا سکتا ہے.

A

نچ پوسٹر

خاص قسم کے پوائنٹر ہے. ایک نچلے پوائنٹر اکثر 0 یا نچلے ہوئے کی طرف اشارہ کرتا ہے اور کچھ بھی نہیں کرتا ہے. اس معاملے میں ایک نچلے پوائنٹر کا استعمال کرنے کے لئے یہ اچھی بات ہے کہ پوائنٹر کو مقرر کرنے کے لئے کوئی درست پتہ نہیں. یہ تفویض منطقی آپریشن اور حالات میں استعمال کیا جا سکتا ہے.

پوائنٹر

کو متحرک طور پر اختصاص کردہ میموری کے پتوں کو ذخیرہ اور منظم کرنے کے لئے استعمال کیا جا سکتا ہے . لاگو کرنے اور اشارے کے استعمال کے ساتھ اسٹاک، قطاروں، اور فہرستوں کے اعداد و شمار کے ڈھانچے کو لاگو کرنے اور کنٹرول کرنا. مثال کے طور پر، قطار میں دو نکات ہوسکتے ہیں؛ سر پوائنٹر اور دم پوائنٹر.پوائنٹر بھی ان کے ایڈریس کے ذریعہ متغیر کو منتقل کرنے کے لئے استعمال کیا جا سکتا ہے، جو قدر تبدیل کرنے کی اجازت دے گی. براہ راست یاد رکھنے والے میموری یا میموری میپڈ آلات کو استعمال کرتے ہوئے بھی سنبھالا جا سکتا ہے. اشارہ یاد رکھنے والے میموری کو محفوظ اور غیر محفوظ رسائی دونوں کی اجازت دیتا ہے. لہذا اس بات کی تصدیق کرنے کے لئے لازمی احتیاطی تدابیر رکھنا ضروری ہے کہ ایک پوائنٹر کا مواد درست ہے. دوسری صورت میں، غلط میموری ایڈریس کے ساتھ ایک پوائنٹر ڈیرفرڈنگ ممکن ہو سکتا ہے کہ پروگرام حادثے کا باعث بن سکے.

اشارے زبانیں C، C ++، Pascal اور بہت سی اسمبلی کی زبانوں میں حمایت کی جاتی ہیں. اشارہ ایک

متغیر

بی کے ساتھ منسلک میموری ایڈریس پر اشارہ کرتے ہوئے.

ایک حوالہ کیا ہے؟ ایک حوالہ صرف میموری میں ذخیرہ کردہ قیمت کے لئے متبادل شناخت کنندہ ہے. یہ کسی خاص پروگرام کو غیر مستقیم تک رسائی حاصل کرنے کے قابل بناتا ہے.

C ++ نحو میں؛

int i = 5؛ int & ref =

پہلی سطر ایک قیمت کے ساتھ ایک متغیر ابتداء کی وضاحت کرتا ہے. دوسری سطر 'ریف' کی قسم کی ایک قسم کے طور پر 'انٹرفیس کے حوالہ' کے طور پر بیان کرتا ہے جس میں میں اشارہ کرتا ہوں. ایک حوالہ اس کے اعداد و شمار سے مختلف ہوتا ہے کہ اس حوالے سے ایک مخصوص حوالہ کے جسمانی ایڈریس کو یاد رکھنا ہے جس میں میموری میں ذخیرہ کیا جاتا ہے.

ایک بار وضاحت کی گئی ہے، ایک حوالہ ایک نئے قدر کو دوبارہ تبدیل نہیں کیا جا سکتا. ایک ریفرنس ہمیشہ اعتراض سے منسلک کرتا ہے جس کے ساتھ یہ ابتدائی ہے. مندرجہ ذیل تفویض میں، ریفریجریشن اب بھی مجھے حوالہ دیتا ہے، لیکن قیمت ابھی ہے.

ref = 20؛ مندرجہ بالا مثال کے مطابق، ڈیرفرنگ حوالہ جات کسی آپریٹرز کی ضرورت نہیں ہے.

حوالہ جات استعمال کیا جا سکتا ہے جب ایک متغیر ہمیشہ ایک اعتراض کا حوالہ دیتے ہیں. یہ وجہ ہے کہ، اشارہ کے برعکس، حوالہ جات سست نہیں ہوسکتے ہیں اور ہمیشہ ابتداء میں تفویض کرنا ضروری ہے. چونکہ حوالہ جات کو ہمیشہ کسی چیز کا حوالہ دینا ضروری ہے، اس طرح متغیر ایک حوالہ بنانا یقینی بناتا ہے کہ یہ پروگرام مؤثر اور درست طریقے سے کام کرے گا. یہ کہا گیا ہے کہ، کوئی نفاست حوالہ نہیں ہیں، ایک حوالہ متغیر کی توثیق کی جانچ پڑتال کی ضرورت نہیں ہے.

ریفرنس متغیر ہوسکتے ہیں

طریقہ کار کو مؤثر طریقے سے بڑے اعداد و شمار کو منتقل کرنے کے لئے استعمال کیا جاتا ہے کیونکہ طریقہ کار

. ہر کوڈ کو اعداد و شمار کا ایک حوالہ رکھتا ہے کیونکہ مختلف کوڈ کے علاقوں کے درمیان بڑے اعداد و شمار کا اشتراک کرنے میں حوالہ جات بھی استعمال کیے جاتے ہیں.

پروگرامنگ زبانوں جیسے سی ++، جاوا، پطرون، پرل، پی ایچ پی، روبی وغیرہ وغیرہ حوالہ جات کی حمایت کرتے ہیں.

اشارہ اور ریفرنس کے درمیان کیا فرق ہے؟ اشارہ اور حوالہ کی تعریف اشارہ:

ایک پوائنٹر میموری کو کمپیوٹنگ میں ذخیرہ کردہ ایک اعتراض کا میموری پتہ ہے.

حوالہ:

ایک حوالہ ایک متبادل شناختی کار یا ایک چیز کے لئے ایک عرف ہے.

اشارہ اور ریفرنس کی خصوصیات اعلامیہ

اشارہ: ایک آپریٹر کے ساتھ ایک پوائنٹر کا اعلان کیا جاتا ہے.

حوالہ:

ایک آپریٹر کے ساتھ ایک حوالہ دیا گیا ہے.

ڈیرفیرنگ اشارہ:

ایک پوائنٹر متغیر * آپریٹر کو ڈیرفرڈ ہونا ضروری ہے. حوالہ:

ایک حوالہ متغیر کسی آپریٹر کو نااہل قرار دینے کی ضرورت نہیں ہے.

ابتداء اشارہ:

پوائنٹر نوڈل کو ابتدائی طور پر بنایا جا سکتا ہے.اس طرح کے متغیر نچلے اشارے کہتے ہیں. حوالہ:

حوالہ جات کو سست کرنے کے لئے ابتداء نہیں کیا جا سکتا. ایک غیر معمولی حوالہ کے طور پر ایسی چیز نہیں ہے. ایک حوالہ ہمیشہ ایک اعتراض کا حوالہ دینا ضروری ہے.

دوبارہ دستخط اشارہ:

متغیر ایک پوائنٹر مختلف چیزوں کا حوالہ کرنے کے لئے دوبارہ استحکام کیا جا سکتا ہے. حوالہ:

ایک حوالہ متغیر قابل قبول نہیں ہوسکتا. یہ ہمیشہ اعتراض سے مراد ہے جس کے ساتھ یہ ابتداء میں تھا.

استعمال اشارہ:

پوینٹر متغیر کو استعمال کیا جانا چاہئے جب کچھ بھی نہیں اشارہ کرنے کا امکان موجود ہے یا جب مختلف چیزوں کو مختلف وقتوں سے حوالہ دیتے ہیں. حوالہ جات:

حوالہ متغیر استعمال کرنا چاہئے جب اس کا حوالہ کرنے کے لئے ہمیشہ اعتراض ہو اور جب اس اعتراض کے علاوہ کسی اور چیز کا حوالہ دینے کے لئے اس حوالہ متغیر کو استعمال کرنے کی ضرورت نہیں ہے.

استعمال کی درخواست اشارہ:

الگورتھم اور ڈیٹا ڈھانچے کو لاگو کرنے کے لئے پوینٹر متغیر استعمال کیا جا سکتا ہے. حوالہ:

ریفرنس پیرامیٹرز میں ریفرنس متغیر استعمال کیا جا سکتا ہے، اور واپسی کی قسم مفید انٹرفیس کی وضاحت کرتا ہے.

استعمال شدہ زبانیں: اشارہ:

سی، سی ++، پااسل اور بہت سی اسمبلی زبانوں کے پروگرامنگ زبانوں کو نشانیوں کی حمایت کرتا ہے. حوالہ جات:

پروگرامنگ زبانوں جیسے سی ++، جاوا، پطرون، پرل، پی ایچ پی، روبی وغیرہ وغیرہ حوالہ جات کی حمایت کرتے ہیں.

تصویری عدلیہ: "پوائنٹر" کی طرف سے یہ فائل صارف کی طرف سے بنایا گیا تھا: سونا ٹرانسمیشن. اپنا کام اس ویکٹر تصویر کو انکسکیپ کے ساتھ تخلیق کیا گیا تھا. (CC BY-SA 3. 0) کامن کے ذریعہ -