ڈوگ لایڈ: آپ کو شروع کرنے کے طور پر افعال کے ساتھ کام کر رہے ہیں، دوسری بات بننے جا رہا ہے سمجھنے کے لئے بہت اہم، جو متغیر گنجائش کے تصور ہے. تو گنجائش ہے ایک متغیر کی خصوصیت جو افعال سے وضاحت کہ متغیر حاصل کیا جاسکتا ہے. C میں دو بنیادی اسکوپ ہیں، مقامی متغیر اور عالمی متغیر. اب، مقامی متغیر صرف کر سکتے ہیں افعال کے اندر اندر حاصل کیا جا جس میں وہ پیدا کر رہے. وہ ہر دوسرے کی طرف سے حاصل نہیں کیا جا سکتا آپ کے پروگرام میں موجود ہے کہ تقریب، میں صرف تقریب جس سے یہ پیدا کیا گیا تھا. عالمی متغیر، دوسری طرف، حاصل کیا جا سکتا پروگرام میں کسی بھی تقریب کی طرف سے. اور اس کے لئے کی وجہ سے ہے وہ اندر پیدا نہیں کر رہے ہیں کیونکہ کسی خاص تقریب کے. ہم سے باہر ان سے اعلان افعال، جو تمام کی تمام ہر تقریب جہاں جانتا ہے کا مطلب ہے کہ یہ ہے اور تک رسائی حاصل اور اس کے جوڑتوڑ کر سکتے ہیں. اب تک کے کورس میں آپ کو خوبصورت ہے زیادہ سے زیادہ خصوصی طور پر کام کر رہے ہیں مقامی متغیر کے ساتھ. یہاں ایک کی ایک مثال بہت ہے سادہ مرکزی تقریب اور ایک بہت سادہ ہم نے لکھا ہے کہ اضافی تقریب. اس صورت میں،، ایکس جس میں صرف سبز رنگ ہے علاقے کو اجاگر کرنے یا اس متغیر کے دائرہ کار، ٹرپل تقریب میں مقامی ہے. اہم بالکل X کی طرف رجوع نہیں کر سکتے. یہ کیا ہے پتہ نہیں ہے. کوئی دوسری تقریب، حقیقت میں، اگر ہم ، یہاں میں اضافی کام کرتا تھا X سے رجوع کر سکتا. اسی طرح، میں نے جس کے نتائج نیلے رنگ، صرف اہم مقامی ہے. صرف اہم جانتا ہے متغیر نتیجہ ہے. ٹرپل استعمال نہیں کر سکتے. اب میں نے ذکر کیا کے طور پر، عالمی متغیر موجود ہیں. آپ کو اس متغیر کا اعلان تو کسی بھی تقریب سے باہر، کے افعال میں سے سب پروگرام کا حوالہ دیتے ہیں کر سکتے ہیں. تو اس معاملے میں میں روشنی ڈالی ہے ایک عالمی متغیر اعلان سبز. اس صورت میں، متغیر وجود کا اعلان کر دیا صرف، عالمی کہا جاتا ہے اس کے بارے میں انتہائی واضح ہو. اس قسم فلوٹ کی ہے. اور میں اس کی قیمت 0،5050 تفویض. آپ اہم میں اور محسوس کریں گے کہ ٹرپل، میں عالمی سے رجوع کرنے کے قابل ہوں. اور حقیقت میں، میں نے پروگرام کے ذریعے جانا ، مرکزی پہلے کالز ٹرپل اشارہ کے طور پر، 3 کی طرف سے عالمی سطح پر ٹرپل سے multiplies، جس 1.5 کچھ کرنے کے لئے اس کی قیمت کا تعین کرتا ہے، 1.51 یا اس طرح کچھ، اور پھر سب سے اہم بھی قدر باہر پرنٹ کے عالمی. 0،5050 باہر پرنٹ نہیں کرے گا تو اہم، یہ ، 1.51 گلوبل ٹائمز 3 پرنٹ گا. تو آپ کو وقت محتاط ہونا کرنے کے لئے ہے آپ کو عالمی متغیر کے ساتھ کام کر رہے ہیں. وہ بہت لچکدار ہیں جبکہ معلومات منتقل کرنے کے قابل کیا جا رہا ہے کے ارد گرد تاکہ ہر تقریب اس کا استعمال کر سکتے ہیں، یہ بھی کچھ ہو سکتا ہے خطرناک نتائج ایک تقریب تبدیلیاں تو ایک متغیر کی قدر آپ توقع سے پہلے اس کو تبدیل کرنے کی. کیوں یہ فرق فرق پڑتا ہے؟ کیوں ہم دیکھ بھال کرتے ہیں کچھ متغیر چاہے مقامی ہیں اور دوسروں کو عالمی سطح پر ہیں؟ ویسے، سب سے زیادہ حصہ کے لئے، مقامی متغیر C میں قدر کی طرف سے منظور کیا کہتے ہیں ہم نے ایک تقریب کال جب. اس کا کیا مطلب ہے؟ ویسے، ایک متغیر گزر چکا ہے جب قیمت، Callee کی، کی طرف سے جو تقریب کہہ کا ایک اور طریقہ ہے کہ متغیر وصول کیا جاتا ہے کہ ایک ان پٹ کے طور پر میں منظور کیا جاتا ہے، یہ اصل میں کہ خود متغیر حاصل نہیں ہے. یہ اس کی اپنی حاصل اس کے نقل کے ساتھ کام کرنے کے لئے. یہ ایک بہت اہم فرق ہے. ہم صرف ایک سیکنڈ پہلے دیکھا عالمی متغیر کے ساتھ کہ، ہم عالمی جوڑتوڑ تو ایک تقریب میں متغیر، اثر کہ میں ایک تقریب کی جاتی ہیں ہر دوسری تقریب کے ذریعے. لیکن مقامی متغیر کے ساتھ، یہ سچ نہیں ہے. ہر تقریب جب یہ ان پٹ کے طور پر متغیر حاصل ان متغیرات کی کاپیاں حاصل، نہیں متغیر خود. تو اس کے ضمنی اثرات کیا ہے؟ مطلب یہ ہے کہ متغیر میں کالر، تقریب اس تقریب کال کر رہا ہے، ہے میں کوئی تبدیلی نہیں کی جگہ لے لے، جب تک آپ اسے. مثال کے طور پر، اس کوڈ میں FOO کو بالکل تبدیل کر دیا گیا نہیں ہے. int FOO کی 4 کے برابر ہے، ٹرپل کال FOO کی، ٹرپل کے اندر، ہم کہ FOO گے توقع کریں گے 3 سے ضرب اور واپس آ جائے، لیکن اصل میں کوئی اثر نہیں ہے. یہاں اگرچہ، ایک بہت ہی ٹھیک ٹھیک فرق. یہ ہم چاہتے ہیں اثر ہے. آپ کیوں دیکھ رہے ہو؟ ہم آپ کو مین اس وقت میں Foo زیرکر رہے. تو int FOO کو 4، FOO کو برابر ٹرپل FOO کو، ہم اس کال جب، ٹرپل اپنے کاپی ہو جاتا ہے FOO کو، 4 کی اپنی کاپی. یہ جو بھی 4 اوقات 3، یا واپسی کا کہنا ہے کہ متغیر اوقات 3 میں منظور ہو جاتا ہے. اور پھر ہم واپسی تفویض ٹرپل کی قدر ایک بار پھر FOO کو. تو یہ اصل FOO کو ادلیکھت گا. ایسا کرنے کا واحد طریقہ ہے مقامی متغیر کے ساتھ اس. تو اب ہم ایک اور شامل تو یہاں کوڈ کے مطابق اہم کے اختتام پر ، FOO کی قدر کو پرنٹ کریں یہ حقیقت میں 12 کو پرنٹ کریں گے. متغیر گنجائش عام طور پر ہے ایک مسئلہ کی بہت زیادہ نہیں آپ سب کے نام تو آپ متغیر مختلف چیزیں. لیکن یہ گندی کی طرح حاصل کر سکتے ہیں ایک ہی متغیر کا نام ہے ایک سے زیادہ کام میں ظاہر ہوتا ہے، جس میں ایک بہت کچھ ہو جائے گا. کیا تم نے کبھی میں کام کرتے ہیں تو حقیقی دنیا جہاں آپ باہمی پر کام کر رہے ہیں مختلف ٹیموں میں پروگراموں اور لوگوں اسی کو لکھنے کے لئے ایک ساتھ مل کر کام کر رہے ہیں پروگرام یا پروگراموں کے ایک ہی سیٹ، وہ اکثر متغیر دوبارہ استعمال کریں گے نام، خاص طور پر عام ہیں تو X، Y، میں، J، اور اس طرح. لیکن جب متغیر ہے اسی نام، گنجائش مسائل تھوڑا trickier تجزیہ کرنے کے لئے حاصل کر سکتے ہیں. مثال کے طور پر، کیا آپ جانتے ہیں کیا باہر طباعت کی جائے گی یہ خاص طور پر اس پروگرام کے آخر میں؟ ایک منٹ لے لو. ویڈیو کو روکنے اور پڑھنے اس پروگرام کے ذریعے. آپ سب سے اوپر ہم میں دیکھ سکتے ہیں ایک تقریب کے اعلان ہے اضافہ نامی ایک تقریب کے لئے. یہ فنکشن ایک لیتا ہے پیرامیٹر، ہم X کہتے ہیں ایک عددی. اور یہ ایک عدد صحیح نتائج. کہ شروع میں واپسی کی قسم ہے. پھر ہم لائنوں کے اہم، ایک جوڑے کی ہے اہم کوڈ، جن میں سے آخری ایک پرنٹ بیان ہے. اور یہ کہ یہاں سوال ہے، یاد. کیا اصل میں ہونے جا رہا ہے اس تقریب کے اختتام پر چھپی ہوئی؟ اور پھر ہم اصل میں ہے ذیل میں اضافہ کی تعریف. تو کے ذریعے قدم، ایک لمحے کے لئے کوڈ، چیزوں کو باہر کا پتہ لگانے کے. تم پر پرنٹ کیا جائے گا کیا جانتے ہو یہ خاص طور پر پروگرام کے اختتام؟ بالکل ٹھیک. امید ہے، آپ کو چند سیکنڈ لیا ہے کوشش کریں اور یہ ایک باہر کا تجزیہ کرنے. ایک ساتھ مل کر کرتے ہیں. لہذا میں اضافہ کی باہر سے تجاوز کر گئے ہیں وہاں سب سے اوپر اعلان. یہ ایک تباہی کی طرح تھا. یہ اس کے اپنے متغیر نہیں ہے. یہ اس کے اپنے دائرہ کار نہیں ہے. یہ صرف ایک تقریب ہے اعلان، تاکہ مقاصد کے لئے کے کیا ہے تجزیہ کرنے کی کوشش اس پروگرام میں ہو، ہم کے طور پر اچھی طرح سے صرف اس سے بچنے کے سکتا ہے. اب ہم اس معاملے میں ہے، اس مسئلے کی وجہ سے مشکل ہے ہم مقامی متغیر ہے ہے کیونکہ اہم اور اضافہ، دونوں جن میں سے ہر کہا جاتا ایکس ہے. اور کورس کے اس مسئلے کی جڑ ہے X تبدیل ہو جاتا ہے جس باہر suss کرنے کی کوشش اور یہ کس طرح تبدیل کر دیا گیا ہے. تو میں ہر مثال کے طور پر رنگ ہے X کی اہم سرخ کرنے کے لئے مقامی ہے. اور میں ہر مثال کے طور پر رنگ ہے X ہے کہ نیلے رنگ اضافہ کے لئے مقامی ہے. تیسری لائن میں نوٹس اہم، Y اضافہ برابر X، کہ اضافہ نہیں کیا جا رہا ہے منظور کی اہم ایکس، یا سرخ X. یہ اس کی ایک نقل گزر رہی ہے. اور یہ صرف کے ساتھ کام کرنے جا رہا ہے کہ اس کے نقل، نیلے X. آپ ریاضی ہیں تو مائل پرممکن ہے کہ آپ اس کی بجائے ایکس ذیلی طور پر اس کے بارے میں سوچا ہے اضافہ کے لئے اہم اور ایکس ذیلی میں میٹر. لیکن یہ ایک ہی خیال ہے. X ذیلی میٹر، یا ایکس کی سرخ گزشتہ سلائڈ میں، local-- ہیں کہ متغیر ہیں اس کی بجائے ایکس کا مثال ہے اہم مقامی ہے، اور ایکس ذیلی میں، یا گزشتہ سلائڈ میں نیلے رنگ متغیر، X کے واقعات ہیں کہ اضافہ کرنے کے لئے مقامی ہیں. لہذا، آپ کو پتہ کرنے کے قابل تھے آخر میں طباعت اس تقریب؟ میں ڈوگ لایڈ ہوں، اور اس CS50 ہے.