سی سیکھتے ہوئے ، آپ کو شاید ’اشارے‘ کی اصطلاح آ گئی ہو ، اور اکثر یہ سنا ہوگا کہ یہ سمجھنا مشکل ہے۔ اشارے پروگرامنگ کے مختلف کاموں میں مددگار ثابت ہوتے ہیں اور ، یہ سمجھنا اتنا مشکل نہیں ہے۔ یہ مضمون آپ کو سی کے نکات سے متعارف کرائے گا اور آپ کو بتائے گا کہ انہیں کیوں سیکھنا اتنا مشکل نہیں ہے جیسا کہ لگتا ہے۔
ذیل میں اس مضمون میں شامل نقاط کو بیان کیا گیا ہے ،
آئیے اس مضمون کے پہلے اشارے کو سی مضمون میں شروع کریں ،
ہیش میپ اور ہیش ٹیبل کے درمیان جاوا کا فرق
پوائنٹس میں سی
ایک اشارہ کیا ہے؟
ایک پوائنٹر متغیر ہے جو متغیر کا پتہ اسٹور کرنے کی صلاحیت رکھتا ہے۔ اب ، آپ پوچھ سکتے ہو کہ اس کا استعمال کیا ہے؟ بنیادی طور پر ، پوائنٹر متغیر کے میموری مقام کی طرف اشارہ کرتا ہے جس کا پتہ فراہم کیا جاتا ہے۔ یہ خاصیت متحرک میموری کی الاٹمنٹ میں مدد کرتی ہے ، جو پروگرامنگ کا ایک اہم پہلو ہے۔
آئیے یہ سمجھتے ہیں کہ یہ نحو ہے اور ایک مثال دیکھیں
ڈیٹا ٹائپ * پوائنٹر_ نام
مثال: int * ptr
سی مضمون میں اس نکتے کے بارے میں اگلی بات ہے
حوالہ اور ڈی حوالہ آپریٹرز
پوائنٹر کے تصور کو گہرائی میں غوطہ لگانے سے پہلے آئیے کچھ ایسی بنیادی باتیں سمجھیں جو بعد میں ہماری مدد کریں گی۔ پوائنٹر استعمال کرتے وقت آپ یقینی طور پر ‘&’ اور ‘*’ آپریٹرز استعمال کریں گے۔ اب وقت آگیا ہے کہ ان کے معنی اور استعمال کو سمجھیں۔
پہلے ، آئیے سمجھیں حوالہ آپریٹر کو اکثر آپریٹر کا پتہ کہتے ہیں۔ متغیر والا (ایمپرسینڈ) آپریٹر استعمال کرنے سے ہمیں ایک یادداشت مقام مل جاتا ہے جسے دیئے جانے والے متغیر کا پتہ بھی کہا جاتا ہے۔
مثال
int * ptr int a ptr = & a
متغیر ‘a’ کا پتہ متغیر پی ٹی آر میں محفوظ ہے۔
اب ، آئیے ڈی-ریفرنسنگ یا ’ویلیو ایٹ‘ آپریٹر کو سمجھیں جس کو ستارے (*) کے ذریعہ اشارہ کیا گیا ہے۔ یہ میموری والے مقام سے قیمت کو حاصل کرنے میں مدد کرتا ہے جو پوائنٹر متغیر میں محفوظ ہے
مثال
int * ptr int a * ptr = & a printf ('a =٪ dn کی قدر' ، * ptr)
پوائنٹر کی اقسام پوائنٹر کا اعلان کرتے ہوئے جو * استعمال کیا جاتا ہے وہ ڈی-ریفرنسنگ کے مقصد کے لئے نہیں بلکہ ، مرتب کرنے والے کو بتاتا ہے کہ دیئے گئے متغیر ایک پوائنٹر ہیں۔مذکورہ بالا پرنٹ بیان میموری کی جگہ میں موجود قدر پرنٹ کرتا ہے اور اس میموری کا مقام پوائنٹر کے ذریعہ اشارہ کیا جاتا ہے۔ یعنی متغیر کی قیمت 'a'۔
یہاں اشارے کی متعدد قسمیں ہیں جو پروگرام میں استعمال کرنے کے طریقوں کی بنیاد پر مختلف ہوتی ہیں۔ہم عام طور پر استعمال ہونے والی کچھ اقسام کو دیکھیں گے۔
نول پوائنٹر
جب آپ کو اس بات کا یقین نہیں ہوتا ہے کہ کونسا پتہ تفویض کیا جانا ہے اس وقت کسی اشارے کو ایک منسوخ قیمت مقرر کردی جاتی ہے۔ یہ اعلان کے وقت کسی پوائنٹر کو ‘NULL’ قدر تفویض کرکے کیا جاسکتا ہے۔ اس پوائنٹر کی قدر 0 ہے۔
int * ptr = NULL
وائلڈ پوائنٹر
پوائنٹر متغیر کو کوئی قدر تفویض نہ کرکے ایک جنگلی پوائنٹر بنایا جاتا ہے۔ اس کا استعمال احتیاط سے کرنا چاہئے کیونکہ اس کا نتیجہ غیر متوقع طور پر مل سکتا ہے۔
ڈنگلنگ پوائنٹ
جب کوئی پوائنٹر کسی حذف شدہ متغیر یا غیر مختص شدہ میموری کی طرف اشارہ کرتا ہے تو پوائنٹر کو مسخ شدہ پوائنٹر کے طور پر جانا جاتا ہے۔یہ پوائنٹر غیر موجود میموری کی جگہ کی نشاندہی کرتا ہے۔ آئیے اس مضمون میں اگلے سی مضمون پر ایک نظر ڈالیں
ایک پوائنٹر کا استعمال کیسے کریں
اب ہمارے پاس ریفرنس اور ڈیری ریفرنس آپریٹرز کے بارے میں ایک مختصر سی تفہیم ہے۔ اس حصے میں ، ہم سمجھیں گے کہ پوائنٹر کیسے استعمال کریں۔ اب تک ہم یہ سیکھ چکے ہیں کہ پوائنٹر کا اعلان کیسے کریں اور اسے کچھ بنیادی کاموں میں استعمال کریں۔ اس مرحلے پر ، ہمارے پاس کافی تعداد میں علم ہے کہ ہم ان پر ریاضی کے عمل کر کے واقعی حیرت انگیز پروگرامنگ کے کاموں کے لئے پوائنٹرز کا استعمال کرسکتے ہیں۔
عام طور پر ، یہ آپریشن ارے پر کئے جاتے ہیں۔ 2 پتوں کو منہا کرنے سے ہمیں 2 میموری والے مقامات کے درمیان فاصلہ مل سکتا ہے۔
int main () First int First_array [10] = {1، 2، 3، 4، 5، 6، 7، 8، 9، 10} / * ہماری صف جس پر ہم آپریشن کریں گے * / INT * ptr / * پوائنٹر * / ptr = پہلا_ریری / * اشارے کے متغیر کو سرنی کا پتہ تفویض کریں * / کے لئے (int i = 0 i<10 i++) /*Performing operations*/ { printf('Value of *ptr variable = %dn', *ptr) printf('Value of ptr variable = %pnn', ptr) ptr++ } }
آؤٹ پٹ
خود کوڈ کو نافذ کرنے کی کوشش کریں اور مختلف ریاضی کے عمل انجام دیں۔آئیے ڈور والے پوائنٹر استعمال کریں۔
# شامل کریں # شامل کریں IN main () str چار str [] = 'ہیلو ورلڈ' / * ایک صف بنانا * / چار * پی / * پوائنٹر * / p = سی آر ٹی آر ایف ('ہمارے تار میں تمام حرفوں کی چھپائی') p = str کے لئے (INT i = 0i)
اس کے ساتھ ہی ہم ’’ پوائنٹس ان سی ‘‘ پر اس بلاگ کے اختتام پر پہنچ گئے ہیں۔ مجھے امید ہے کہ آپ کو یہ معلوماتی اور مددگار مل گیا ہے ، اسی طرح کے موضوعات پر مزید سبق حاصل کرنے کے لئے ہم آہنگ رہیں گے۔o jQuery کے ساتھ اس کی مختلف ایپلیکیشنز کے ساتھ گہرائی سے معلومات حاصل کریں ، آپ کر سکتے ہیں 24/7 مدد اور زندگی بھر تک رسائی کے ساتھ براہ راست آن لائن تربیت کے ل.۔مذکورہ کوڈ کو مختلف تار اور ترمیم کے ساتھ نافذ کریں۔ اب ، ہمارے پاس پوائنٹر سے متعلق تمام کلیدی تصورات کی اچھی طرح سے تفہیم ہے۔مصنوعی ذہانت میں مبہم منطقہمارے لئے ایک سوال ہے؟ اس بلاگ کے تبصرے سیکشن میں ان کا تذکرہ کریں اور ہم آپ کو واپس ملیں گے۔