پوینٹر اور آرٹ کے درمیان فرق

Anonim

پوینٹر بمقابلہ رینج

ایک پوائنٹر ایک ڈیٹا کی قسم ہے جس میں میموری مقام کا حوالہ رکھتا ہے ایک پوائنٹر متغیر اسٹوریج میموری میموری کا ایڈریس رکھتا ہے جس میں کچھ ڈیٹا ذخیرہ کیا جاتا ہے). arrays عناصر کی ایک مجموعہ کو ذخیرہ کرنے کے لئے سب سے زیادہ عام طور پر استعمال کردہ ڈیٹا ڈھانچہ ہے. زیادہ تر پروگرامنگ زبانیں آسانی سے arrays میں arrays اور عناصر تک رسائی کے لئے طریقہ کار فراہم کرتی ہیں. <

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

کیا ہے؟

اعداد و شمار 1 میں دکھایا گیا ہے، عام طور پر کوڈ کا ایک ٹکڑا ہے جس میں عام طور پر ایک صف میں قیمتوں کا اعلان کیا جاسکتا ہے. شناخت 2 کی طرف اشارہ کرتا ہے کہ کس طرح کی ترتیب میں میموری کی طرح نظر آتا ہے.

int اقدار [5]؛

اقدار [0] = 100؛

اقدار [1] = 101؛

اقدار [2] = 102؛

اقدار [3] = 103؛

اقدار [4] = 104؛

شناخت 1: ایک صف میں قیمتوں کا اعلان اور تفویض کرنے کا کوڈ

100

101

102 103 104 انڈیکس: 0 1
2 < 3 4 شناخت 2: میموری میں ذخیرہ کردہ آرٹ اوپر کے کوڈ کو ایک صف کی وضاحت کرتا ہے جو 5 انٹیگرز کو ذخیرہ کرسکتا ہے اور وہ انڈیکس 0 سے 4 تک استعمال کرسکتا ہے. ایک صف کی ایک اہم ملکیت یہ ہے کہ، پوری صف کو میموری کے ایک واحد بلاک کے طور پر مختص کیا جاتا ہے اور ہر عنصر صف میں اپنی جگہ حاصل ہوتی ہے. ایک بار ایک صف کی وضاحت کی گئی ہے، اس کا سائز مقرر کیا جاتا ہے. لہذا اگر آپ کو مرتب کردہ وقت میں صف کے سائز کے بارے میں یقین نہیں ہے، تو آپ کو ایک محفوظ جگہ میں کافی سرنی کی وضاحت کرنا ہوگی. لیکن، اکثر اوقات، ہم اصل میں کم عناصر کا استعمال کرتے ہوئے استعمال کرتے ہیں جو ہم نے مختص کیے ہیں. لہذا میموری کی کافی مقدار اصل میں ضائع ہوگئی ہے. دوسری جانب اگر "بڑی تعداد میں کافی سرنی" کافی بڑی نہیں ہے تو یہ پروگرام حادثہ ہوگا. پوائنٹر اور گرفت کے درمیان کیا فرق ہے؟

ایک پوائنٹر ایک ڈیٹا کی قسم ہے جس میں میموری محل وقوع کا پتہ لگاتا ہے جس میں کچھ ڈیٹا ذخیرہ کیا جاتا ہے، جبکہ arrays عناصر کے جمع کرنے کے لئے سب سے زیادہ استعمال کردہ ڈیٹا ڈھانچہ ہیں. سی پروگرامنگ کی زبان میں، صف انڈیکسنگ پوائنٹر ریاضی (i.e. سر کی ایکس ith عنصر کا استعمال کرتے ہوئے کیا جاتا ہے. * (x + i) کے برابر ہوگا.لہذا سی میں، پوائنٹس کا تعین ہے کہ مسلسل میموری مقامات کی ایک سیٹ کی طرف اشارہ کرتے ہیں، ایک سر کے طور پر سوچا جا سکتا ہے. اس کے علاوہ، یہ فرق یہ ہے کہ سائز کا آپریٹر کس طرح اشارہ اور arrays پر چلتا ہے. جب ایک سر پر لاگو ہوتا ہے تو، sizeof آپریٹر صف کے پورے سائز کو واپس لے جائے گا، جب ایک پوائنٹر پر لاگو ہوتا ہے، تو یہ صرف پوائنٹر کے سائز واپس آ جائے گا.