[موسیقی بجانے] ڈوگ لایڈ: نوٹیفائر، ہم یہاں ہیں. شاید یہ جا رہا ہے سب سے مشکل موضوع ہو ہم CS50 میں کے بارے میں بات. اور آپ کو پڑھنے ہے تو اشارہ کے بارے میں کچھ آپ کو تھوڑا سا ہو سکتا ہے اس سے پہلے کہ دھمکی اس ویڈیو میں جانے. یہ اشارہ سچ ہے آپ کی صلاحیت کی اجازت دیتے ہیں شاید بگاڑ بہت بری طرح تم جب متغیر، اور اعداد و شمار کے ساتھ کام کرنے، اور آپ کے پروگرام کریش ہوا جس کے نتیجے میں. لیکن وہ اصل میں واقعی بہت مفید ہیں اور انہوں نے ہمیں ایک بہت اچھا طریقہ کی اجازت دیتے ہیں واپس ڈیٹا منتقل کرنے کی اور آگے افعال کے درمیان، کہ ہم دوسری صورت میں کرنے کے قابل نہیں ہیں. اور تو کیا ہم واقعی ٹرین ہے یہاں کرنا چاہتے ہیں آپ کو اچھی پوائنٹر نظم و ضبط ہے، تاکہ آپ کو مؤثر طریقے اشارہ استعمال کر سکتے ہیں آپ کے پروگراموں کہ بہت بہتر بنانے کے لئے. جیسا میں نے کہا اشارہ ہمیں ایک مختلف دے راستہ افعال کے درمیان ڈیٹا منتقل کرنے کی. اب آپ سے یاد تو پہلے ویڈیو، جب ہم کے بارے میں بات کر رہے تھے متغیر گنجائش، میں نے ذکر کیا کہ ہم کے درمیان منتقل ہے کہ تمام اعداد و شمار C میں افعال قیمت کی طرف سے منظور کیا جاتا ہے. اور میں اس کا استعمال کیا ہے نہیں کر سکتے ہیں اصطلاح میں وہاں کا مطلب، کیا ہم اعداد و شمار کی کاپیاں گزر رہے ہیں کہ. ہم نے ایک تقریب کے لئے ایک متغیر گزرتے ہیں، ہم اصل میں متغیر گزر نہیں کر رہے ہیں تقریب میں، ٹھیک ہے؟ ہم ایک کاپی کو منظور کر رہے ہیں تقریب میں کہ اعداد و شمار. تقریب کیا یہ کرتا ہے اور یہ کچھ قیمت کا حساب لگاتا، اور شاید ہم اس قدر استعمال یہ واپس دیتا ہے جب. ایک رعایت کے لئے وہاں تھا قیمت کی طرف سے گزر کے اس اصول، اور ہمیں کیا ہے کہ واپس آ جائیں گے اس ویڈیو میں بعد میں ایک چھوٹی سی ہے. ہم اس کی بجائے اشارہ کا استعمال کرتے ہیں متغیر کا استعمال کرتے ہوئے، یا متغیر کا استعمال کرتے ہوئے کی بجائے خود کو یا متغیر کی کاپیاں، اب ہم کے ارد گرد متغیر منتقل کر سکتی ہیں ایک مختلف انداز میں کام کرتا ہے کے درمیان. یہ ہے اگر ہم کا مطلب ہے کہ ایک تقریب میں تبدیلی، کہ تبدیلی دراصل لے جائے گا ایک مختلف تقریب میں اثر. ایک بار پھر، یہ کچھ ہے کہ ہم نے پہلے ایسا نہیں کر سکا اور کیا تم نے کبھی تبادلہ کرنے کی کوشش کی ہے تو ایک تقریب میں دو متغیر کی قدر، آپ کو اس مسئلہ محسوس کیا ہے اپ creeping کی طرح، ٹھیک ہے؟ ہم X اور Y، اور ہم کا تبادلہ کرنا چاہتے ہیں تو تبدیل کردہ لسٹ نامی ایک تقریب میں ان کے پاس، تقریب کے اندر تبادلہ متغیر تبادلہ اقدار کرتے. ایک دو ہو جاتا ہے، دو ہو جاتا ہے ایک، لیکن ہم اصل میں ایسا نہیں کرتے اصل میں کچھ بھی تبدیل تقریب، کالر میں. کیونکہ ہم نہیں کر سکتے، ہم صرف ان کی نقول کے ساتھ کام کر رہے ہیں. اگرچہ اشارہ کے ساتھ، ہم کر سکتے ہیں اصل میں ایک تقریب میں X اور Y کے پاس. اس تقریب کر سکتے ہیں ان کے ساتھ کچھ. اور ان متغیرات اقدار اصل میں تبدیل کر سکتے ہیں. تو اس میں کافی تبدیلی ہے ڈیٹا کے ساتھ کام کرنے کی ہماری صلاحیت. ہم میں ڈوبکی سے پہلے اشارہ، میں نے اس کے قابل ہے چند منٹ کے لئے لے جا یہاں واپس مبادیات پر جانے. اور کس طرح پر ایک نظر ہے کمپیوٹر میموری کام ان دونوں مضامین جا رہے ہیں کیونکہ واقعی بہت باہم مربوط ہونا. آپ شاید جانتے ہیں، آپ کے کمپیوٹر سسٹم پر آپ کو ایک کی ہارڈ ڈرائیو ہے یا شاید ایک ٹھوس ریاست ڈرائیو، فائل سٹوریج محل وقوع کے کسی قسم. اس میں کہیں عام طور پر ہے 250 گیگا بائٹس کے پڑوس اب terabytes کو شاید ایک جوڑے کے لئے. اور اس کا ہے جہاں تمام ہے کہ آپ فائلوں بالآخر، رہتے ہیں آپ کے کمپیوٹر بند ہے اس وقت بھی جب دور، آپ پر تبدیل کر سکتے ہیں اور آپ کو آپ کی فائلوں کو وہاں ہو جائے گا ایک بار پھر آپ کو آپ کے سسٹم کو ربوٹ جب. لیکن ایک ہارڈ ڈسک ڈرائیو کی طرح ڈسک ڈرائیوز،، ایک کوائف نامہ، یا ایک ٹھوس ریاست ڈرائیو، ایک SSD، صرف سٹوریج کی جگہ ہیں. ہم اصل میں کے ساتھ کچھ بھی نہیں کر سکتے ہیں ہارڈ ڈسک میں ہے کہ اعداد و شمار، یا ایک ٹھوس ریاست ڈرائیو میں. اصل میں تبدیل کرنے کے لئے اعداد و شمار یا اس کے ارد گرد منتقل، ہم پر منتقل کرنے کے لئے ہے رام، رینڈم رسائی میموری. اب رام، آپ کو ایک بہت کچھ کرنا پڑے آپ کے کمپیوٹر میں کم. تم میں کہیں ہو سکتا ہے 512 میگا بائٹ کے پڑوس اگر آپ ایک پرانے کمپیوٹر ہے، شاید کرنے کے لئے دو، چار، آٹھ، 16، ممکنہ طور پر بھی ایک چھوٹا سا مزید، RAM کے گیگا بائٹس. تو اتنا چھوٹا ہے، لیکن اس کے جہاں مستحکم اعداد و شمار کے تمام موجود. ہم چیزوں کو تبدیل کر سکتے ہیں جہاں ہے. لیکن ہم نے اپنے کمپیوٹر کو بند کر دیں، جب، RAM میں اعداد و شمار کے تمام تباہ کر دیا ہے. ہم ہارڈ ڈسک کی ضرورت ہے یہی وجہ ہے کہ اس سے زیادہ مستقل مقام کے لئے، یہ exists- تاکہ یہ کرے گا بہت برا ہو تو ہر بار ہم ، ہمارے کمپیوٹر بند کر دیا گیا ہر ہمارے نظام میں فائل مٹا تھا. تو ہم RAM کے اندر کام کرتے ہیں. اور ہر وقت کے بارے میں ہم بات کر رہے ہیں میموری، بہت زیادہ، CS50 میں، ہم RAM، نہ ہارڈ ڈسک کے بارے میں بات کر رہے ہیں. تو ہم یاد میں چیزوں کو منتقل جب، اس کی جگہ کی ایک مقررہ رقم لیتا ہے. اعداد و شمار اقسام میں سے سب اس ہم کے ساتھ کام کر رہا ہوں اپ مختلف لے RAM میں جگہ کی مقدار. تو ہر وقت آپ کو ایک عددی بنانے میموری کی متغیر، چار بائٹس تم اتنی RAM میں ایک طرف قائم کر رہے ہیں کہ عددی کے ساتھ کام کر سکتے ہیں. آپ عددی اعلان کر سکتے ہیں، اسے تبدیل، تفویض incremented کیا ایک قدر 10 ایک، اسی طرح اور اسی طرح کی طرف سے. میں ایسا کرنے کی ضرورت ہے کہ تمام رام، اور آپ کو چار بائٹس حاصل ہر ایک کے لئے ساتھ مل کر کام کرنے کے لئے آپ کو بنانے کے کہ عددی. ہر کردار آپ تخلیق ایک بائٹ ہے. اس جگہ ہے کہ کس طرح زیادہ ہے ایک کردار ذخیرہ کرنے کے لئے کی ضرورت ہے. ہر فلوٹ، ایک حقیقی تعداد، چار بائٹس ہو جاتا ہے یہ ایک ڈبل ہے جب تک صحت سے متعلق چل نقاط آپ کی اجازت دیتا ہے جس کی تعداد، زیادہ عین مطابق یا اس سے زیادہ ہندسے ہیں دشملو نقطہ کے بعد صحت سے متعلق کو کھونے کے بغیر، جس میموری کی آٹھ بائٹس اٹھا. لانگ چاہتا، بہت بڑا integers کے، بھی میموری کے آٹھ بائٹس اٹھا. کتنی میموری کی بائٹس ڈور اپ لیتے ہیں؟ ٹھیک ہے کہ سوال میں ایک پن ڈال دو اب کے لئے، لیکن ہم اسے واپس آ جائیں گے. تو واپس میموری کے اس خیال کے طور پر بائٹ سائز کے خلیات کی ایک بڑی سرنی. یہ واقعی یہ سب ہے، یہ ہے خلیات کی ایک بڑی سرنی، صرف کسی دوسرے صف کی طرح کہ آپ کے ساتھ واقف ہیں اور دیکھیں، ہر عنصر کے علاوہ ایک بائٹ وسیع ہے. اور صرف ایک صف کی طرح، ہر عنصر ایک ایڈریس ہے. ایک صف کے ہر عنصر ایک انڈیکس، اور ہم ہے نام نہاد کرنا ہے کہ انڈیکس استعمال کر سکتے ہیں صف پر رینڈم رسائی. ہم شروع کرنے کے لئے نہیں ہے صف کے آغاز، ہر کے ذریعے iterate ایک عنصر اس، ہم کے لئے تلاش کر رہے ہیں تلاش کرنے کے لئے. ہم صرف میں حاصل کرنا چاہتے ہیں، کا کہنا ہے کہ کر سکتے ہیں 15th کے عنصر یا عنصر کے 100th. اور آپ کو صرف اس تعداد میں منتقل کر سکتے ہیں اور آپ کے لئے تلاش کر رہے ہیں قیمت حاصل. اسی طرح ہر جگہ یاد میں ایک ایڈریس ہے. تو آپ میموری طاقت کچھ اس طرح نظر. یہاں کی ایک بہت چھوٹا سا حصہ ہے میموری، اس میموری کے 20 بائٹس ہے. پہلے 20 بائٹس کیونکہ میری نچلے حصے میں وہاں سے خطاب 3، 2، 1، 0 ہے، اور تو 19 کرنے کے لئے تمام راستے پر. اور میں متغیر کا اعلان اور جب میں ان کے ساتھ کام کرنے کے لئے شروع، نظام قائم کرنے کے لئے کی جا رہی ہے میرے لئے ایک طرف کچھ جگہ یہ یاد میں کام کرنے کے لئے میرے متغیر کے ساتھ. تو میں نے چار C دارالحکومت برابر، کا کہنا ہے کہ ہو سکتا ہے ایچ اور کیا ہونے جا رہا ہے؟ ویسے نظام کی جا رہی ہے مجھے ایک بائٹ کے لئے مقرر. اس صورت میں یہ بائٹ نمبر کا انتخاب چار، چار بجے ایڈریس بائٹ، اور یہ ذخیرہ کرنے کے لئے جا رہا ہے میرے لئے وہاں میں خط دارالحکومت ایچ. میں تو INT رفتار کہتے ہیں حد یہ ہے، 65 کے برابر ہے ایک طرف چار قائم کرنے جا رہا میرے لئے میموری کی بائٹس. اور یہ ان کے علاج کے لئے جا رہا ہے ایک یونٹ کے طور پر چار بائٹس ہم کام کر رہے ہیں کی وجہ سے کے ساتھ یہاں ایک عدد صحیح ہے. اور یہ وہاں 65 ذخیرہ کرنے کے لئے جا رہا ہے. اب پہلے سے ہی میں اس قسم کی ہوں تم جھوٹ کا تھوڑا سا بتا، ٹھیک ہے، ہم جانتے ہیں کہ وجہ کمپیوٹر بائنری میں کام کرتے ہیں. وہ سمجھتے نہیں ضروری نہیں کہ ایک سرمایہ ایچ ہے یا 65 وہ صرف کیا ہے، بائنری، zeros اور ہیں کو سمجھنے. اور اس طرح اصل میں کیا ہم وہاں ذخیرہ کرنے کر رہے خط H اور نمبر 65، نہیں ہے بلکہ بائنری نمائندگی اس، جس نظر اس طرح کچھ. اور میں خاص طور پر عددی متغیر کے تناظر، یہ صرف اس میں تھوکنے نہیں جا رہا ہے یہ ایک چار کے طور پر اس کے علاج کے لئے نہیں جا رہا ہے بائٹ حصہ ضروری، یہ اصل میں جا رہا ہے چار ایک بائٹ مقدار کے طور پر اس کے علاج کے لئے، جو کچھ اس طرح نظر ہو سکتا ہے. اور یہ بھی نہیں ہے مکمل طور پر سچ تو، نامی کسی چیز کی وجہ سے ہم نہیں ہیں جو ایک endianness، ، اب میں حاصل کرنے جا رہا ہے لیکن آپ کے بارے میں جاننا چاہتے ہیں تو، آپ کو تھوڑا سا پر پڑھ سکتے ہیں اور بڑے endianness. لیکن اس دلیل کی خاطر، اس ویڈیو کی خاطر، صرف اس میں ہے، فرض حقیقت یہ ہے کہ، کس طرح تعداد 65 گے میں نمائندگی دی جائے ہر نظام پر میموری، یہ مکمل طور پر سچ نہیں ہے، اگرچہ. لیکن اصل میں صرف حاصل کرنے کی اجازت مکمل طور پر تمام ثنائی کے چھٹکارا، اور صرف ایچ کے طور پر کے بارے میں سوچنا اور 65، یہ ایک بہت آسان ہے کی طرح اس کے بارے میں سوچنے کے لئے ایک انسان کے طور پر ہے. ٹھیک ہے، یہ بھی لگتا ہے تو شاید ایک تھوڑا بے ترتیب کہ I've- اپنے نظام بائٹس 5، 6، 7 نے مجھے نہیں دی، اور 8 عددی ذخیرہ کرنے کے لئے. اس کے لئے ایک وجہ، بھی، نہیں ہے جس ہم ابھی میں حاصل، لیکن کافی نہیں ہوں گے اس کا کہنا ہے کہ کمپیوٹر یہاں کر رہا ہے شاید اس حصہ پر ایک اچھا اقدام ہے. مجھے ہے کہ میموری نہیں دے ضروری واپس واپس. اب یہ کیا جا رہا ہے اگرچہ میں ایک تار حاصل کرنا چاہتے ہیں تو، نام نامی، اور میں چاہتا ہوں وہاں میں Lloyd ڈال کرنے کے لئے. میں ایک فٹ ہونے کے لئے کی ضرورت کے لئے جا رہا ہوں کردار، اس کے ہر خط ہے ایک کی ضرورت کے لئے جا رہے کردار، میموری کا ایک بائٹ. میں اپنے صف میں لایڈ ڈال سکتا تو اس طرح میں نے صحیح، جانے کے لئے بہت اچھا ہوں؟ کیا لاپتہ ہے؟ ہر سٹرنگ ہم کام کرتے ہیں کہ یاد رکھیں سی الٹا سلیش صفر ساتھ ختم ہوتا ہے کے ساتھ، اور ہم یا تو، کہ یہاں ترک نہیں کر سکتے ہیں. ہم ایک طرف ایک بائٹ قائم کرنے کی ضرورت میموری کی تو ہم نے اس کے انعقاد کے لئے ہمارے سٹرنگ ختم ہو گیا ہے جب آپ کو معلوم. تو ایک بار پھر اس کا انتظام راستہ چیزیں میموری طاقت میں ظاہر ، ایک چھوٹا سا بے ترتیب ہو لیکن یہ اصل میں ہے کہ کس طرح سب سے زیادہ نظام تیار کیا گیا ہے. ملٹی پر ان کو لائن پر چار میں، وجوہات کی بناء پر ایک بار پھر ہم کرنے کی ضرورت نہیں ہے اب میں ملتا ہے. لیکن یہ، تاکہ یہ کہنا کافی کوڈ کا ان تین لائنوں کے بعد، یہ میموری کی طرح نظر ہو سکتا ہے ہے. میں میموری مقامات پر کی ضرورت ہو تو 4، 8، اور 12، میرے اعداد و شمار کے انعقاد کے لئے یہ میری میموری کی طرح نظر ہو سکتا ہے ہے. اور صرف خاص طور پر ہو یہاں، جب pedantic ہم میموری کے بارے میں بات کر رہے ہیں پتے عام طور پر ہم تو شش اعشاری علامتوں کا استعمال کرتے ہوئے. تو کیوں نہ ہم ان میں سے سب کو تبدیل نہیں شش اعشاری سنکیتن کو دشملو سے صرف یہ ہے کہ عام طور پر ہے کیونکہ ہم کس طرح میموری کا حوالہ دیتے ہیں. تو بجائے ذریعے 0 ہونے کی وجہ سے 19، کیا ہمارے پاس صفر ہے صفر X1 تین ذریعے X صفر. وہ میموری کی 20 بائٹس ہیں کہ ہم یا ہم اس تصویر میں دیکھ رہے ہیں ہے یہیں پر. تو اس نے کہا کیا جا رہا ہے تمام، چلو ایک سیکنڈ کے لئے میموری کی طرف سے دور قدم اور واپس اشارہ. یہاں سب سے زیادہ اہم ہے بات یاد رکھو ہم اشارہ کے ساتھ کام شروع کے طور پر. ایک پوائنٹر نہیں ہے ایک ایڈریس کے مقابلے میں زیادہ. میں ایک بار پھر اس کی وجہ سے کہیں گے یہ ضروری ہے کہ ایک پوائنٹر نہیں ہے ایک ایڈریس کے مقابلے میں زیادہ. نوٹیفائر مقامات پر پتے ہیں میموری میں متغیر کہاں رہتے ہیں. یہ امید ہے کہ ایک ہو جاتا ہے کہ سب کچھ جاننے والا آسان تھوڑا سا ان کے ساتھ کام کرنے. مجھے پسند ایک چیز ایسا کرنے کے لئے ترتیب ہے کے لئے ہے کے ضعف کیا نمائندگی ڈایا گرام کوڈ کے مختلف لائنوں کے ساتھ ہو. اور ہم یہ ایک جوڑے کرتے ہیں اشارہ میں کئی بار، اور ہم متحرک بارے میں بات کرتے میموری مختص کرنے کے ساتھ ساتھ. میں یہ اشکال ہے کہ لگتا ہے کیونکہ خاص طور پر مفید ہو سکتا ہے. میں مثال کے طور پر کا کہنا ہے کہ اگر ایسا ہے تو، INT K اپنے کوڈ میں، کیا ہو رہا ہے؟ ویسے بنیادی طور پر کیا ہے ہو رہا ہے میں، میرے لئے مقرر میموری ہو رہی ہے لیکن میں بھی پسند نہیں کرتے میں، اس طرح اس کے بارے میں سوچنا ایک باکس کی طرح اس کے بارے میں سوچنا اچھا لگتا ہے. میں ایک باکس ہے اور یہ رنگ سبز میں کیونکہ سبز خانوں میں integers کے ڈال کر سکتے ہیں. یہ ایک کردار میں تھا تو ایک نیلے باکس ہو سکتا ہے. میں پیدا کر رہا ہوں لیکن اگر میں نے ہمیشہ کا کہنا ہے کہ integers کے پکڑ کر سکتے ہیں کہ ایک باکس اس باکس سبز رنگ ہے. اور میں نے ایک مستقل مارکر لے اور میں اس کی طرف سے کشمیر لکھنا. تو میں نے، K نامی ایک باکس ہے جس میں میں integers کے ڈال کر سکتے ہیں. میں int K کہنا ہے کہ جب تو، ہے کیا میرے سر میں ہوتا ہے. میں K پانچ برابر کہتے ہیں، میں کیا کر رہا ہوں؟ ویسے، میں نے پانچ ڈال رہا ہوں باکس میں، صحیح. یہ تو بہت سیدھا ہے میں int K، K نامی ایک باکس تخلیق ہے. تو میں، K 5 برابر ہے کا کہنا ہے کہ باکس میں پانچ ڈال. امید ہے کہ ایک چھلانگ کی بہت زیادہ نہیں ہے. چیزوں کو کہاں جانا ہے یہاں اگرچہ دلچسپ تھوڑا. میں int * پی کا کہنا ہے کہ، اچھی طرح سے میں نہیں ہے یہاں تک کہ اگر یہ ضروری نہیں کہ کا مطلب کیا ہے، یہ واضح طور پر کچھ ہے ایک عددی کے ساتھ کرنا. تو مجھے رنگ کرنے جا رہا ہوں سبز ISH اس باکس، میں یہ کچھ ہے جانتے ہیں ایک عددی کے ساتھ کیا کرنا، لیکن یہ ایک عددی خود نہیں ہے، یہ ایک int ستارہ ہے کیونکہ. کچھ تھوڑا سا نہیں ہے اس کے بارے میں مختلف. تو ایک عددی کے ملوث، لیکن دوسری صورت میں یہ ہے سے بہت مختلف نہیں کیا ہم کے بارے میں بات کر رہے تھے. یہ ایک باکس ہے، اس، ایک لیبل ہے اسے ایک لیبل PK پہنا ہے، اور اس کے انعقاد کی صلاحیت رکھتی ہے لوگ ہیں جو INT ستاروں،. وہ کیا کرنا کچھ ہے integers کے ساتھ، واضح طور پر. یہاں آخری سطر اگرچہ ہے. اگر میں کہوں کہ PK = & K، واہ، کیا صرف صحیح، کیا ہوا؟ تو یہ بے ترتیب تعداد، بظاہر بے ترتیب تعداد، وہاں باکس میں پھینک دیا جاتا ہے. ہے کہ تمام، PK ہے K کا پتہ ہو جاتا ہے. K یاد میں رہتا ہے جہاں تو میں چپکی ہوئی ہوں، اس ایڈریس، اس بائٹس کا پتہ. میں کر رہا ہوں سب میں کہہ رہا ہوں ہے اس قدر میں جا رہا ہوں کیا ہے میرا باکس بلایا پی کے اندر ڈال کرنے کے لئے. ان باتوں کی وجہ سے اشارہ، اور لگ کیونکہ صفر X طرح ایک تار میں آٹھ صفر C سات چار سے آٹھ دو صفر شاید ہے بہت بامعنی نہیں. ہم عام طور پر اشارہ کو دیکھ تو، ہم اصل میں اشارہ کے طور پر ایسا کرتے ہیں. PK ہمیں معلومات فراہم کرتا ہے ہم نے یاد میں K تلاش کرنے کی ضرورت. تو بنیادی طور پر پی اس میں ایک تیر ہے. اور ہم لمبائی چلے تو کہ تیر کی، تصور یہ آپ پر چل سکتا ہے کچھ ہے، اگر ہم تیر کی لمبائی کے ساتھ ساتھ چلنا، کہ تیر کے سرے پر، ہم میموری میں جگہ مل جائے گا جہاں K رہتا ہے. اور یہ کہ بہت ضروری ہے K کہاں رہتی ہے ہم جانتے ہیں ایک بار، کیونکہ ہم اعداد و شمار کے ساتھ کام کرنے کے لئے شروع کر سکتے ہیں اس میموری مقام کے اندر. ہم ایک teeny ہو رہی ہے اگرچہ اب کے لئے آگے خود کا تھوڑا سا. تو ایک پوائنٹر کیا ہے؟ ایک پوائنٹر جس کا ایک ڈیٹا شے ہے قیمت ایک میموری ایڈریس ہے. تھا صفر X آٹھ صفر چیزیں پر جا، کہ ایک میموری ایڈریس تھا. یہ یاد میں ایک مقام تھا. اور ایک پوائنٹر کی قسم قسم کی وضاحت اعداد و شمار کی آپ کو تلاش کر لیں گے کہ میموری ایڈریس. تو int سٹار حصہ وہیں ہے. مجھے لگتا ہے کہ تیر کی پیروی کرتے ہیں، یہ ہے کسی جگہ پر قیادت کرنے کے لئے جا رہا. اور اس مقام، جو میں نے میری مثال میں وہاں مل جائے گا، ایک سبز رنگ کے باکس ہے. یہ کیا ہے، ایک عدد صحیح ہے میں مجھے اس پتے پر جانا ہے تو مل جائے گا. ایک کے اعداد و شمار کی قسم پوائنٹر کیا بیان آپ اس میموری ایڈریس پر مل جائے گا. تو یہاں اگرچہ واقعی ٹھنڈی چیز ہے. نوٹیفائر ہمیں منتقل کرنے کی اجازت افعال کے درمیان متغیر. اور اصل میں متغیر کو منتقل اور ان کی کاپیاں کو منتقل نہیں. ہم جانتے ہیں کیونکہ اگر کہاں یاد میں ایک متغیر تلاش کرنے کے لئے، ہم کی ایک کاپی بنانے کے لئے کی ضرورت نہیں ہے یہ، ہم صرف اس مقام پر جا سکتے ہیں اور اس متغیر کے ساتھ کام کرتے ہیں. جوہر اشارہ میں تو اس طرح کی ایک کمپیوٹر ماحول بنانے ایک بہت زیادہ حقیقی دنیا کی طرح، صحیح. تو یہاں ایک قیاس ہے. میں نے ایک نوٹ بک ہے کہ کا کہنا ہے کہ، ٹھیک ہے، اور یہ نوٹ سے بھرا ہوا ہے. اور میں تم اس کو اپ ڈیٹ کرنا چاہتے ہیں. آپ کو ایک تقریب سے ہیں کہ اپ نوٹوں، صحیح. راستے میں ہم نے کیا گیا ہے اب تک کام کر رہے ہیں، کیا تم نے میری نوٹ بک لے گا ہوتا ہے، آپ کاپی کی دکان میں چلے جائیں گے تم میں سے ایک زیروکس کاپی بنا دیں گے نوٹ بک کے ہر صفحے. تم واپس اپنے لیپ ٹاپ چھوڑ دیں گے میری میز پر تم نے کیا کر رہے ہیں جب، تم جاؤ اور میں چیزوں کو باہر پار کریں گے میرے تاریخ یا غلط سے باہر ہیں کہ نوٹ بک، اور اس کے بعد آپ کو واپس منتقل کریں گے مجھے زیروکس صفحات کے اسٹیک کہ میرے لیپ ٹاپ کی ایک نقل کے ساتھ ہے آپ کو اس کے لئے بنایا ہے کہ تبدیلیاں. اور اس نقطہ پر، اس کے طور پر مجھ پر منحصر ہے کالنگ تقریب، کال کرنے والے کے طور پر، آپ کے نوٹ لینے کے لئے فیصلہ کرنے کے لئے اور میری نوٹ بک میں انہیں واپس ضم. تو اقدامات کی ایک بہت کچھ ہے یہاں شامل، صحیح. کی طرح یہ بہتر نہیں ہو گا میں صرف کا کہنا ہے کہ، ارے، آپ کر سکتے ہیں کے لئے اپنے لیپ ٹاپ کو اپ ڈیٹ مجھے،، آپ کو اپنے لیپ ٹاپ ہاتھ اور آپ کو چیزیں لینے کے لئے اور لفظی ان باہر پار اور میری نوٹ بک میں اپنے نوٹ کو اپ ڈیٹ. اور پھر میرے لیپ ٹاپ واپس دے. اس کی قسم کیا ہے اشارہ، ہم ایسا کرنے کی اجازت وہ اس ماحول ایک بہت بنانے کے ہم حقیقت میں کام کس طرح زیادہ. تاکہ ٹھیک ہے ایک پوائنٹر، کی بات ہے اشارہ سی میں کام کرتے ہیں، اور کس طرح کے بارے میں کہ ہم کس طرح ان کے ساتھ کام کرنے کے لئے شروع کر سکتے ہیں. تو ایک بہت سادہ پوائنٹر ہے C میں، شہوت انگیز null پوائنٹر کہا جاتا ہے. کچھ بھی نہیں، شہوت انگیز null پوائنٹر پوائنٹس. یہ ہے کی طرح یہ شاید لگتا ہے اصل میں ایک بہت ہی مفید چیز ہے، لیکن ہم ایک دیکھ لیں گے کے طور پر بعد میں تھوڑا، حقیقت اس شہوت انگیز null پوائنٹر موجود ہے اصل میں واقعی ہاتھ میں آ سکتا. اور آپ کو ایک پوائنٹر پیدا جب، اور آپ اس کی قیمت immediately- مقرر نہیں کرتے ترتیب کی ایک مثال اس کی قیمت فوری طور پر واپس ایک جوڑے سلائڈ ہو جائے گا میں، PK وکشمیر کے برابر ہے جہاں پی کے طور پر، K کا پتہ ہو جاتا ہے ہم، اس کا مطلب کیا دیکھیں گے ہم اس کوڈ کو کس طرح نظر آئے گا shortly- ہم کچھ اس کی قیمت مقرر نہیں ہے تو فوری طور پر بامعنی، آپ کو ہمیشہ ہونا چاہئے شہوت انگیز null کی طرف اشارہ کرنے کے لئے آپ پوائنٹر قائم. تم نے اسے کچھ بھی نہیں کی طرف اشارہ کرنے کے لئے مقرر کیا جانا چاہئے. اس سے بہت مختلف ہے یہ ہے کے طور پر صرف کی قیمت کو چھوڑ کر اور پھر ایک اعلان پوائنٹر اور صرف سنبھالنے کہ شاذ و نادر ہی سچ ہے کیونکہ یہ شہوت انگیز null ہے. لہذا آپ کو ہمیشہ قائم کرنا چاہئے ایک پوائنٹر کی قدر آپ کو اس کی قیمت مقرر نہیں ہے تو شہوت انگیز null فوری طور پر بامعنی کچھ کرنے کے لئے. آپ کو چیک نہیں کر سکتے ہیں ایک پوائنٹر کی قدر چاہے مساوات آپریٹر استعمال کر رہے ہیں، شہوت انگیز null ہے (==)، صرف آپ کو کسی بھی عددی موازنہ پسند اقدار یا کردار اقدار استعمال کرتے ہوئے (==) اس کے ساتھ ساتھ. یہ مسلسل کی ایک خاص قسم ہے آپ کی جانچ کرنے کے لئے استعمال کر سکتے ہیں اس قدر. تو یہ ایک بہت آسان تھا پوائنٹر، شہوت انگیز null پوائنٹر. ایک راستہ بنانے کے لئے ایک پوائنٹر نکالنے کے لئے ہے ایک متغیر کا پتہ آپ نے پہلے ہی پیدا کیا ہے، اور اگر آپ اس کا استعمال کرتے ہوئے آپریٹر ایڈریس نکالنے. جو ہم نے پہلے ہی پہلے دیکھا ہے پہلے آریھ مثال میں ظاہر ہوتا ہے. X ہم ہے کہ ایک متغیر ہے تو پہلے سے قسم عددی پیدا، پھر & X ایک عددی ایک پوائنٹر ہے. & X ہے-، اور نکالنے کے لئے کی جا رہی ہے یاد دائیں بات کا پتہ. اور ایک پوائنٹر صرف ایک ایڈریس ہے کے بعد سے، مقابلے اور ایکس ایک عددی ایک پوائنٹر ہے جس کی قیمت جہاں میموری X زندگی میں ہے. یہ X کے ایڈریس ہے. تو اور ایکس ایکس کے ایڈریس ہے. اس ایک قدم لے مزید اور کچھ کرنے کے لئے مربوط میں پہلے ویڈیو میں کرنے کے لئے alluded. آمد ڈبلز کی ایک سرنی پھر، ہے اور آمد مربع بریکٹ میں ایک پوائنٹر ہے ایک ڈبل کرنے کے لئے. ٹھیک ہے. میں، تو مربع بریکٹ آمد آمد، ڈبلز کی ایک صف ہے پھر میں ہے مربع بریکٹ آمد اس صف کے I- ویں عنصر، اور & مربع بریکٹ آمد میں کہاں ہے میموری آمد کے I- ویں عنصر موجود ہے. تو مطلب یہاں کیا ہے؟ ایک arrays کے نام، مطلب اس پوری چیز کا، ایک صف کے نام ہے اصل میں خود کو ایک پوائنٹر. تم کام کر رہا ہوں سب کے ساتھ ساتھ اشارہ کے ساتھ آپ کو ایک صف استعمال کیا ہے کہ ہر وقت. مثال کے طور پر کی طرف سے یاد رکھیں متغیر گنجائش پر، میں پیش ویڈیو کے اختتام کے قریب ہم نے ایک تقریب ہے جہاں ایک مثال کے طور پر بلایا سیٹ int اور ایک تقریب سیٹ صف بلایا. اور آپ کا چیلنج کا تعین کرنے یا نہیں، یا کیا ہم باہر پرنٹ ہے کہ اقدار تقریب کے اختتام، اہم پروگرام کے اختتام پر. آپ کو اس مثال سے یاد تو یا آپ کو ویڈیو کو دیکھا ہے تو، آپ کو کال حق جب جانتے ہیں کہ سیٹ INT مؤثر طریقے سے کچھ نہیں کرتا. لیکن کال سرنی کرتا ہے قائم کرنے کے لئے. اور میں قسم کی کیوں زیادہ glossed اس وقت معاملہ تھا. میں صرف اچھی طرح سے، یہ ایک صف ہے ہے، نے کہا خصوصی، آپ جانتے ہیں، ایک وجہ ہے. وجہ یہ ہے کہ ایک صف کے ہے نام، واقعی صرف ایک پوائنٹر ہے اور اس خصوصی ہے مربع بریکٹ نحو کہ کے ساتھ کام کرنے چیزیں بہت اچھے بنا. اور وہ ایک کے خیال بنانے بہت کم دھمکی پوائنٹر، وہ طرح ہیں یہی وجہ ہے کہ کے اس انداز میں پیش کیا. لیکن واقعی arrays کے صرف اشارہ ہیں. اور یہ کہ کیوں جب ہم ، سرنی کے لئے ایک تبدیلی کی ہم نے ایک پیرامیٹر کے طور پر ایک سرنی منظور جب ایک تقریب میں یا ایک دلیل کے طور پر صف کی ایک تقریب میں، مواد اصل میں دونوں Callee کی میں تبدیل کر دیا اور کالر میں. کے ہر دوسرے قسم کے لئے کون ہم نے دیکھا متغیر معاملہ نہیں تھا. تو ہے کہ میں رکھنے کے لئے کچھ ہے آپ کو اشارہ کے ساتھ کام کر رہے ہیں جب برا، ہے کہ ایک کا نام صف اصل میں ایک پوائنٹر اس صف کے پہلے عنصر. ٹھیک ہے تو اب ہم ان تمام ہے حقائق، کا حق، جا رکھنے دیں. کیوں ہم کے بارے میں دیکھ بھال کرتے ہیں جہاں کچھ رہتا ہے. میں نے کہا ٹھیک ہے کی طرح، یہ خوبصورت ہے کچھ رہتا ہے جہاں جاننے کے لئے مفید تو تم وہاں جاؤ اور اسے تبدیل کر سکتے ہیں. اس کے ساتھ کام کرتے ہیں اور اصل میں بات ہے کہ آپ کو کہ متغیر لے اثر کرنا چاہتے ہیں، اور اس میں سے کچھ کاپی پر اثر نہیں لے. یہ محولہ لقب ضبطی کہا جاتا ہے. حوالہ کے پاس جاؤ اور ہم وہاں قدر تبدیل. ہم ایک پوائنٹر ہے اور اگر ایسا ہے تو یہ کہا جاتا ہے پی سی، اور یہ ایک کردار کی طرف اشارہ ہے، پھر ہم * پی سی اور * پی سی کا کہنا ہے کہ کر سکتے ہیں ہمیں جانا تو ہم تلاش کر لیں گے کے نام ایڈریس کے کمپیوٹر پر. کیا ہم وہاں تلاش کر لیں گے ایک کردار ہے اور * پی سی ہے کہ ہم اس میں اعداد و شمار کا حوالہ دیتے ہیں کہ کس طرح ہے محل وقوع. تو ہم کچھ اس طرح کہہ سکتے ہیں * پی سی = D یا اس طرح کچھ، اور اس کا مطلب ہے کہ جو کچھ بھی ، میموری ایڈریس پی سی میں تھا جو بھی کردار پہلے تھا ہم پی سی = D * کا کہنا ہے کہ وہاں،، اب D ہے. لہذا ہم یہاں کے ساتھ دوبارہ جانا کچھ عجیب سی چیزیں، صحیح. تو ہم کے طور پر ماضی میں * دیکھا ہے کسی نہ کسی طرح ڈیٹا کی قسم کا حصہ، اور اب اس میں استعمال کیا جا رہا ہے ایک تھوڑا سا مختلف سیاق و سباق ایک مقام پر ڈیٹا تک رسائی حاصل کرنے کے لئے. مجھے یہ تھوڑا مبہم ہے جانتے ہیں اور کہ اصل میں اس پورے کا حصہ ہے کی طرح، کیوں اشارہ اس پران ہے ان کے ارد گرد اتنی پیچیدہ ہونے کے طور پر، ایمانداری، ایک نحوی مسئلہ کی طرح ہے. لیکن * دونوں سیاق و سباق میں استعمال کیا جاتا ہے، دونوں قسم کے نام کا حصہ کے طور پر، اور ہم نے ایک چھوٹا سا نظر آئے گا بھی اور بعد میں کچھ،. اور اب ہے dereference آپریٹر. تو یہ حوالہ ہے، یہ اعداد و شمار تک رسائی حاصل پوائنٹر کے محل وقوع، اور آپ اپنی مرضی سے یہ جوڑتوڑ کرنے کی اجازت دیتا ہے. اب اس کی طرح ہے اپنے پڑوسی کا دورہ، صحیح. اگر تم جانتے ہو کیا آپ پڑوسی تم، رہتا ہے اپنے پڑوسی کے ساتھ باہر پھانسی نہیں. آپ کے لئے ہو جانتے ہیں وہ کہاں رہتے ہیں جانتے ہیں، لیکن اس سے یہ مطلب نہیں ہے اس علم رکھنے کی فضیلت آپ ان کے ساتھ بات چیت کر رہے. آپ ان کے ساتھ بات چیت کرنا چاہتے ہیں تو، آپ، ان کے گھر جانا ہے آپ کو وہ کہاں رہتے ہیں کے لئے جانا ہے. اور آپ کو ایسا ایک بار، تو آپ بات چیت کر سکتے ان کے ساتھ صرف آپ کے لئے چاہتے ہیں پسند. اور اسی طرح متغیر کے ساتھ، آپ کو ان کے ایڈریس پر جانے کی ضرورت ہے تم نے انہیں بات چیت کرنا چاہتے ہیں تو، آپ کو صرف پتہ نہیں کر سکتے ہیں. اور آپ کو پتہ پر جانا طریقہ ہے *، dereference آپریٹر استعمال کرنے کے لئے. آپ کو کیا ہوتا کیا سوچتے ہیں ہم کوشش کریں اور dereference ہے تو جس کی قیمت ایک پوائنٹر شہوت انگیز null ہے؟ شہوت انگیز null کو یاد ہوگا کہ پوائنٹر کچھ کی طرف اشارہ ہے. آپ کوشش کریں اور dereference ہے اگر ایسا ہے تو کچھ بھی نہیں ایک ایڈریس کچھ بھی نہیں جانا یا، آپ کو کیا ہوتا کیا سوچتے ہیں؟ ویسے آپ کو اندازہ تو انقطاع غلطی، آپ ٹھیک ہو جائے گا. آپ کوشش کریں اور dereference ہے تو شہوت انگیز null پوائنٹر، آپ کو ایک انقطاع کا شکار غلطی. لیکن، انتظار مجھے لگتا ہے کہ، آپ کو بتا نہیں کیا تم جا نہیں کر رہے ہیں آپ کے قیمت مقرر کرنے کے لئے آپ بامعنی کچھ پوائنٹر، آپ شہوت انگیز null کے لئے مقرر کیا کرنا چاہئے؟ میں نے کیا اور اصل میں انقطاع غلطی ایک اچھے رویے کی طرح ہے. تم نے کبھی ایک متغیر کا اعلان کر اور فوری طور پر اس کی قیمت تفویض نہیں کر سکے؟ تو کیا تم صرف int ایکس کا کہنا ہے کہ؛ آپ ایسا نہیں کرتے اصل میں کچھ بھی کرنے کے لئے اس کی وضاحت اور پھر بعد میں اپنے کوڈ میں، آپ، X کی قدر باہر پرنٹ اب بھی نہیں ہونے کچھ کرنے کے لئے تفویض. اکثر آپ کو ملے گا صفر، لیکن کبھی کبھی آپ کچھ بے ترتیب تعداد میں حاصل، اور ہو سکتا ہے آپ یہ کہاں سے آیا کوئی اندازہ نہیں ہے. اسی طرح چیزیں کر سکتے ہیں اشارہ کے ساتھ ہو. آپ کو ایک پوائنٹر اعلان کرتے INT * مثال کے طور پر پی، اور آپ کو ایک کی قیمت پر اس کی وضاحت نہیں آپ میموری کے لئے چار بائٹس حاصل. کی جو بھی چار بائٹس نظام میموری کر سکتے ہیں کچھ بامعنی قدر ہے کہ مل جائے. اور وہاں ہو سکتا ہے پہلے سے ہی موجود ہے کہ کچھ دوسرے کی طرف سے کی ضرورت نہیں رہ گیا ہے تقریب، آپ کو صرف ضرورت ہے تاکہ جو ڈیٹا تھا. کیا آپ dereference ہے کرنے کی کوشش کی تو تم وہاں تھے don't- کہ کچھ پتہ پہلے سے بائٹس اور معلومات میں وہاں، کہ آپ پوائنٹر میں ہے. ، اگر تم کوشش کرو اور اس پوائنٹر dereference آپ کو کچھ یاد داشت کے ساتھ خلط ملط ہو سکتا ہے آپ کا ارادہ نہیں تھا کہ یہ سب کے ساتھ گڑبڑ کرنے. اور حقیقت میں آپ کر سکتے ہیں واقعی تباہ کن کچھ، طرح کسی دوسرے پروگرام کو توڑنے، یا، ایک اور تقریب کو توڑنے یا کہ بدنیتی پر مبنی کچھ آپ بالکل ایسا کرنے کا ارادہ نہیں تھا. یہ ہے اور یہی وجہ ہے اتنا ہے کہ اصل میں ایک اچھا خیال اگر آپ شہوت انگیز null اشارہ آپ کے قائم کرنے کے لئے بامعنی کچھ کے لئے ان مقرر نہیں کرتے. یہ شاید بہتر ہے آپ کے پروگرام کے لئے دن کے اختتام ایسا کرنے کے لئے اس کے بعد کریش ہوا کچھ اس پیچ ایک پروگرام یا ایک اور تقریب. اس رویے سے بھی شاید ہے صرف اجلاس ہونے کے تناظر سے کم مثالی. یہ ہے اور یہی وجہ ہے اتنا ہے کہ اصل میں ایک اچھی عادت آپ اشارہ قائم کرنے میں حاصل کرنے کے تم نے انہیں مقرر نہیں ہے تو شہوت انگیز null ایک بامعنی قیمت پر آپ کو پتہ ہے کہ فوری طور پر، ایک قدر اور یہ کہ آپ کو محفوظ طریقے سے کر سکتے ہیں dereference ہے. تو اب واپس آنے دو اور ایک نظر ڈالیں صورت حال کا مجموعی نحو میں. میں int * P کہتے ہیں ؛، میں صرف کیا کیا ہے؟ کیا میں نے کیا ہے یہ ہے. میں P کی قیمت ایک پتہ ہے جانتے ہیں تمام اشارہ صرف ہے کیونکہ پتے. میں کر سکتا ہوں dereference ہے P * آپریٹر کا استعمال کرتے. بہت میں یہاں اس سیاق و سباق میں، سب سے * قسم کا حصہ ہے یاد. INT * ڈیٹا کی قسم ہے. لیکن میں dereference کر سکتے ہیں * آپریٹر کا استعمال کرتے P، اور میں ایسا کرتے ہیں تو، میں اس پتے پر جاتے ہیں تو، مجھے اس پتے پر کیا جائے گا؟ میں ایک عددی جائے گا. تو int * P بنیادی طور پر ہے کہہ، P ایک پتہ ہے. میں کر سکتا ہوں P dereference ہے اور اگر مجھے معلوم ہے، میں ایک عددی جائے گا اس میموری مقام پر. ٹھیک ہے میں ایک وہاں تھا ستاروں کے ساتھ پریشان کن بات اور یہاں جہاں ہے ستاروں کے ساتھ پریشان کن بات یہ ہے. کیا تم نے کبھی کا اعلان کرنے کی کوشش کی ہے اسی قسم کی ایک سے زیادہ متغیر کوڈ کی ایک ہی لائن پر نہیں ہیں؟ تو ایک سیکنڈ کے لئے،، اس لائن دکھاوا میں اصل میں سبز رنگ میں وہاں پڑے کوڈ وہاں نہیں ہے اور یہ صرف int X، Y، Z کا کہنا ہے کہ؛ کیا ایسا کریں گے اصل میں تخلیق ہے آپ کے لئے تین عددی متغیر، ایک نام نہاد ایکس، ایک نام نہاد Y، اور ایک Z بلایا. اس کے بغیر ایسا کرنے کے لئے ایک طریقہ ہے تین لائنوں پر تقسیم کرنے کے لئے. ستاروں کو حاصل یہاں ہے جہاں اگرچہ ایک بار پھر پریشان، * اصل حصہ ہے کیونکہ دونوں قسم کا نام اور حصہ کی متغیر کا نام. اور اس طرح اگر میں کہوں INT * پکسلز، Py میں، PZ، جو میں نے اصل میں حاصل ایک عددی ایک پوائنٹر ہے پکسلز اور دو integers، Py کی اور PZ بلایا. اور یہ کہ شاید نہیں کیا ہے ہم یہ اچھا نہیں ہے، چاہتے ہیں. میں ایک سے زیادہ اشارہ پیدا کرنے کے لئے چاہتے ہیں تو ایک ہی لائن میں، اسی قسم کے، میں واقعی میں ضرورت ہے اور ستاروں، ایسا کرنے کے لئے * PB، * پی سی، INT * PA کا کہنا ہے کہ. اب اس نے کہا کہ اور اب، تم یہ کہہ آپ کو شاید یہ کبھی نہیں کروں گا. اور یہ، ایمانداری سے شاید ایک اچھی بات ہے آپ نادانستہ طور پر ہو سکتا ہے کیونکہ ایک ستارہ، اس طرح کچھ ترک. یہ ہو سکتا ہے کا اعلان کرنے کے لئے شاید سب سے بہتر ہے انفرادی لائنوں پر اشارہ، لیکن یہ صرف ایک ہے ان پریشان نحو کے ہے کہ ستاروں کے ساتھ چیزیں ساتھ مل کر کام کرنے کے لئے اتنا مشکل اشارہ. یہ صرف اس نحوی ہے کیونکہ گندگی آپ کے ذریعے کام کرنے کے لئے ہے. پریکٹس کے ساتھ کرتا ہے واقعی دوسری فطرت بن. میں اب بھی اب بھی اس کے ساتھ غلطیوں کو بنانے کے 10 سال کے لئے پروگرامنگ کے بعد، کچھ ہوتا ہے تو پریشان نہ ہو آپ کو، یہ ایمانداری سے بہت عام ہے. یہ قسم کی واقعی ہے نحو کے ایک دوش. ٹھیک ہے تو میں قسم کا وعدہ ہم پر نظرثانی کریں گے کہ کتنے بڑے کا تصور ایک تار ہے. ویسے میں نے ایک تم سے کہا کہ تو سٹرنگ، ہم اس قسم کی واقعی ہے آپ کو پورے وقت جھوٹ بول رہا. نامی کوئی ڈیٹا کی قسم ہے سٹرنگ، اور میں حقیقت میں میں سے ایک میں اس کا ذکر کیا ہمارے اعداد و شمار اقسام پر ابتدائی ویڈیوز، کہ سٹرنگ ایک ڈیٹا کی قسم تھا کہ CS50.h. میں آپ کے لئے پیدا کیا گیا تھا آپ شامل کرنے کے لئے ہے اس کا استعمال کرنے کے لئے cs50.h، میں. ویسے سٹرنگ صرف سچ ہے کسی چیز کے لئے ایک عرف ، چار * نامی ایک ایک کردار پوائنٹر. ویسے اشارہ، یاد، صرف خطاب ہیں. تو سائز کیا ہے ایک تار کی بائٹس میں؟ ویسے یہ چار یا آٹھ ہے. اور اس کی وجہ مجھے کہنا چار یا آٹھ اس کی وجہ سے اصل میں ہے آپ استعمال کر رہے ہیں تو، نظام پر انحصار کرتا ہے CS50 IDE، چار ایک چار * کا سائز ہے * یہ ایک 64 بٹ نظام ہے، آٹھ ہے. یاد میں ہر پتہ 64 بٹس طویل ہے. آپ CS50 آلات استعمال کر رہے ہیں یا کسی بھی 32 بٹ مشین کا استعمال کرتے ہوئے، اور آپ کو اس مدت 32 بٹ سنا ہے مشین، ایک 32 بٹ مشین کیا ہے؟ ویسے یہ صرف کا مطلب ہے کہ ہر یاد میں ایڈریس 32 بٹیں طویل ہے. اور اس طرح 32 بٹس چار بائٹس ہے. تو ایک چار * چار یا آٹھ ہے آپ کے سسٹم پر انحصار بائٹس. اور یقینا کسی بھی اعداد و شمار اقسام، اور کسی بھی اعداد و شمار کے ایک پوائنٹر تمام اشارہ صرف کے بعد، ٹائپ پتے، چار یا آٹھ بائٹس ہیں. تو اس پر نظرثانی کی اجازت تصویر اور کی نتیجہ اخذ دو یہاں ایک چھوٹی سی مشق کے ساتھ اس ویڈیو. لہذا ہم یہاں کے ساتھ چھوڑ دیا ہے آریھ ویڈیو کے آغاز میں. میں * پی = 35 کا کہنا ہے کہ اگر ایسا ہے تو اب کیا ہوگا؟ تو یہ * پی = 35، جب میں کہتا ہوں کیا مطلب ہے؟ ایک دوسرے لے. * پی. یہاں سیاق و سباق میں، * ہے dereference آپریٹر. تو جب dereference ہے آپریٹر، استعمال کیا جاتا ہے ایڈریس کی طرف اشارہ کرنے کے لئے ہمیں جانا PK کی طرف سے، اور ہم مل کیا تبدیل. تو * پی = 35 مؤثر طریقے سے تصویر کے اس کرتا ہے. تو یہ syntactically ہے بنیادی طور پر ہے کے لئے ایک جیسی K = 35 نے کہا. ایک اور. میں int میٹر کہتے ہیں، میں پیدا M نامی ایک نئی متغیر. ایک نیا باکس، یہ ایک سبز خانے کیونکہ یہ ایک عدد صحیح منعقد کرنے جا رہا ہے، اور یہ میٹر لیبل لگا رہا ہے. مجھے M = 4 کا کہنا ہے کہ، میں ایک ڈال اس باکس میں عددی. کہو PK = & M، کس طرح کرتا ہے تو اس تصویر تبدیل کریں؟ PK = & M، آپ کو کیا یاد کرنا اور آپریٹر کرتا ہے یا کہا جاتا ہے؟ کہ اور کچھ متغیر کا نام یاد رکھیں ایک متغیر کا نام پتہ ہے. تو کیا ہم کہہ رہے ہیں پی ایم کا پتہ ہو جاتا ہے. اور اس طرح مؤثر طریقے سے کیا ہوتا ہے آریھ کہ اب کوئی پوائنٹس PK ہے میٹر، لیکن پوائنٹس کشمیر سے. ایک بار پھر اشارہ بہت ہیں ساتھ مل کر کام کرنے کے لئے مشکل اور وہ ایک بہت لے پریکٹس، لیکن اس کی وجہ آپ کی اجازت دینے کی صلاحیت افعال کے درمیان ڈیٹا منتقل کرنے کی اور اصل میں ان لوگوں کو تبدیلیوں کا اثر لے، کے ارد گرد اپنے سر ہو رہی ہے بہت ضروری ہے. شاید یہ سب سے زیادہ پیچیدہ ہے ہم CS50 میں بات چیت موضوع، لیکن قیمت کہ آپ اشارہ استعمال کر رہے ہیں کی طرف سے حاصل دور پیچیدگیوں outweighs ہے کہ ان کے سیکھنے سے آتے ہیں. لہذا میں آپ کی سب سے بہترین کی خواہش قسمت اشارہ کے بارے میں سیکھنے. میں ڈوگ لایڈ ہوں، اس CS50 ہے.