1 00:00:00,000 --> 00:00:01,110 >> [موسیقی بجانے] 2 00:00:01,110 --> 00:00:10,567 3 00:00:10,567 --> 00:00:11,650 DAVID J. MALAN: ٹھیک ہے. 4 00:00:11,650 --> 00:00:15,610 یہ CS50 ہے، اور یہ چار ہفتے کے آخر ہے. 5 00:00:15,610 --> 00:00:19,420 اور موضوعات میں سے ایک آج ڈیجیٹل فوریںسک کی ہے کہ، 6 00:00:19,420 --> 00:00:20,989 معلومات کی وصولی کے فن. 7 00:00:20,989 --> 00:00:22,780 اور یقینا، اگرچہ آپ درمیان میں ہیں 8 00:00:22,780 --> 00:00:25,070 اب امن کے تین میں اور بریکآؤٹ، اگلے ہفتے، 9 00:00:25,070 --> 00:00:27,880 توجہ مرکوز ہو جائے گا خاص طور پر اس ڈومین. 10 00:00:27,880 --> 00:00:30,686 >> بہترین ملازمتوں کی ایک تو میں نے کبھی تھا، واپس گریجویٹ اسکول میں تھا 11 00:00:30,686 --> 00:00:33,560 میں مقامی کے لئے کام کر رہا تھا جب مڈل سیکس کاؤنٹی ڈسٹرکٹ اٹارنی کی 12 00:00:33,560 --> 00:00:34,950 دفتر، کر عدالتی کام. 13 00:00:34,950 --> 00:00:37,450 تو بنیادی طور پر، میسا چوسٹس ریاستی پولیس، اس موقع پر، 14 00:00:37,450 --> 00:00:40,100 مقدمات پر کام کرتے وقت کرے گا ہارڈ ڈرائیوز کی طرح چیزوں میں لانے 15 00:00:40,100 --> 00:00:42,185 اور فلاپی ڈسک اور میموری کارڈ اور طرح. 16 00:00:42,185 --> 00:00:44,060 اور وہ ان کے حوالے کرے گا مجھے اور میرے استاد کو، 17 00:00:44,060 --> 00:00:48,070 اور ہمارا مقصد ثبوت تلاش کرنے کے لئے تھا، ان میڈیا پر کسی بھی، وہاں تھا تو. 18 00:00:48,070 --> 00:00:50,700 اب، تم نے دیکھا ہے ہو سکتا ہے جھلکیاں عدالتی کے اس دنیا کی 19 00:00:50,700 --> 00:00:53,000 میڈیا، ٹی وی اور فلموں میں. 20 00:00:53,000 --> 00:00:55,730 لیکن کام میں تھا، اور daresay ہے کہ دنیا، 21 00:00:55,730 --> 00:00:57,550 آپ اسے دیکھیں گے کی طرح کافی نہیں ہے. 22 00:00:57,550 --> 00:01:00,794 کے میں ایک نظر ڈالیں کیا آپ کو شاید دیکھا ہے. 23 00:01:00,794 --> 00:01:01,460 [ویڈیو پلے بیک] 24 00:01:01,460 --> 00:01:02,930 ٹھیک ہے. 25 00:01:02,930 --> 00:01:05,380 اب، آپ پر ایک اچھی نظر حاصل. 26 00:01:05,380 --> 00:01:06,850 >> [موسیقی بجانے] 27 00:01:06,850 --> 00:01:12,260 28 00:01:12,260 --> 00:01:12,932 >> اس -Hold. 29 00:01:12,932 --> 00:01:13,657 واپس چلائیں. 30 00:01:13,657 --> 00:01:14,733 >> ایک منٹ رکو. 31 00:01:14,733 --> 00:01:15,233 درست جانا. 32 00:01:15,233 --> 00:01:16,371 33 00:01:16,371 --> 00:01:16,870 -There. 34 00:01:16,870 --> 00:01:17,369 کہ منجمد. 35 00:01:17,369 --> 00:01:17,930 مکمل سکرین. 36 00:01:17,930 --> 00:01:18,376 >> ٹھیک ہے. 37 00:01:18,376 --> 00:01:18,875 کہ منجمد. 38 00:01:18,875 --> 00:01:20,160 آپ، اس پر گا -Tighten؟ 39 00:01:20,160 --> 00:01:22,126 >> اس پر میں -Vector واپس وہیل کی طرف سے آدمی. 40 00:01:22,126 --> 00:01:24,435 >> یہاں اس موقع پر میں -Zoom. 41 00:01:24,435 --> 00:01:28,580 >> صحیح سامان ساتھ میں، تصویر بڑھا اور تیز کیا جا سکتا. 42 00:01:28,580 --> 00:01:29,330 >> کہ کیا ہے؟ 43 00:01:29,330 --> 00:01:30,780 >> یہ ایک اضافہ پروگرام ہے. 44 00:01:30,780 --> 00:01:32,170 >> کہ کوئی واضح آپ -Can؟ 45 00:01:32,170 --> 00:01:33,070 >> مجھے پتہ نہیں ہے. 46 00:01:33,070 --> 00:01:34,150 یہ اضافہ کرتے ہیں. 47 00:01:34,150 --> 00:01:35,440 >> -Enhance سیکشن A6. 48 00:01:35,440 --> 00:01:36,570 49 00:01:36,570 --> 00:01:38,562 میں تفصیل میں اضافہ، and-- 50 00:01:38,562 --> 00:01:40,020 مجھے اضافہ کرنے کے لئے کافی ہے. 51 00:01:40,020 --> 00:01:40,976 میرے سکرین پر اس کی رہائی. 52 00:01:40,976 --> 00:01:42,559 >> میں نے اس کی آنکھوں میں عکاسی بڑھا. 53 00:01:42,559 --> 00:01:44,322 -چلو کے ذریعے اس کو چلانے ہے ویڈیو بڑھانے. 54 00:01:44,322 --> 00:01:45,210 >> -Edgar، آپ اس کو بہتر بنانے کے کر سکتے ہیں؟ 55 00:01:45,210 --> 00:01:45,710 >> پر -Hang. 56 00:01:45,710 --> 00:01:47,570 57 00:01:47,570 --> 00:01:49,458 >> اس کی عکاسی پر کام کر رہے -I've. 58 00:01:49,458 --> 00:01:50,402 >> -There کی کسی کی عکاسی. 59 00:01:50,402 --> 00:01:50,902 >> -Reflection. 60 00:01:50,902 --> 00:01:52,870 آدمی کے چہرے کی عکاسی -There ہے. 61 00:01:52,870 --> 00:01:53,694 >> -The عکاسی! 62 00:01:53,694 --> 00:01:54,610 عکاسی -There ہے. 63 00:01:54,610 --> 00:01:55,880 آئینے میں -Zoom. 64 00:01:55,880 --> 00:01:57,860 تم ایک عکس دیکھ سکتے ہیں. 65 00:01:57,860 --> 00:01:59,630 >> آپ یہاں سے تصویر کو بڑھانے کے -Can؟ 66 00:01:59,630 --> 00:02:00,377 67 00:02:00,377 --> 00:02:01,210 آپ اس میں اضافہ -Can؟ 68 00:02:01,210 --> 00:02:02,190 آپ اس میں اضافہ -Can؟ 69 00:02:02,190 --> 00:02:03,066 ہم اس کو بہتر بنانے کے -Can؟ 70 00:02:03,066 --> 00:02:03,898 آپ اس میں اضافہ -Can؟ 71 00:02:03,898 --> 00:02:04,740 ایک دوسرے پر -Hold. 72 00:02:04,740 --> 00:02:05,281 میں اضافہ کریں گے. 73 00:02:05,281 --> 00:02:06,470 دروازے پر میں -Zoom. 74 00:02:06,470 --> 00:02:06,970 10 -Times. 75 00:02:06,970 --> 00:02:08,009 -Zoom. 76 00:02:08,009 --> 00:02:08,509 میں -Move. 77 00:02:08,509 --> 00:02:09,340 -More. 78 00:02:09,340 --> 00:02:10,094 رکو، کو روکنے کے. 79 00:02:10,094 --> 00:02:10,750 سٹاپ. 80 00:02:10,750 --> 00:02:11,250 اس -Pause. 81 00:02:11,250 --> 00:02:13,542 ہم 75 ڈگری -Rotate عمودی کے ارد گرد، براہ مہربانی. 82 00:02:13,542 --> 00:02:14,750 83 00:02:14,750 --> 00:02:16,127 >> سٹاپ. 84 00:02:16,127 --> 00:02:19,330 حصہ پر واپس جائیں دروازے کے بارے میں ایک بار پھر. 85 00:02:19,330 --> 00:02:21,420 >> بٹ نقشہ کر سکتے ہیں کہ ایک تصویر enhancer کے -Got؟ 86 00:02:21,420 --> 00:02:24,420 >> ہم پردیپ سنگھ استعمال کر سکتے ہیں -Maybe طریقہ ونڈوز میں دیکھنے کے لئے. 87 00:02:24,420 --> 00:02:25,902 >> -The سافٹ ویئر فن کی ریاست ہے. 88 00:02:25,902 --> 00:02:26,866 >> -The eigenvalue بند ہے. 89 00:02:26,866 --> 00:02:29,758 >> حق ساتھ میں یلگوردمز کا مجموعہ 90 00:02:29,758 --> 00:02:32,168 >> -He کے لیا الیومینیشن اگلے سطح پر یلگوردمز، 91 00:02:32,168 --> 00:02:34,110 اور میں ان کا استعمال کر سکتے ہیں اس تصویر کو بڑھانے کے. 92 00:02:34,110 --> 00:02:36,840 >> پر -Lock اور Z محور وسعت. 93 00:02:36,840 --> 00:02:37,351 >> -Enhance. 94 00:02:37,351 --> 00:02:37,850 کو بہتر بنانے کے. 95 00:02:37,850 --> 00:02:38,720 -Enhance. 96 00:02:38,720 --> 00:02:40,070 -Freeze اور بڑھانے. 97 00:02:40,070 --> 00:02:43,420 [END ویڈیو پلے بیک] 98 00:02:43,420 --> 00:02:45,830 DAVID J. MALAN: تو ہیں تمام الفاظ، لیکن وہ نہیں تھے 99 00:02:45,830 --> 00:02:47,870 درست طریقے سے جملوں میں استعمال کیا. 100 00:02:47,870 --> 00:02:52,370 اور یقینا مستقبل میں، کسی بھی وقت، ، اگر آپ کسی لفظ کو کہتے ہوئے سنتے ہیں، براہ مہربانی، 101 00:02:52,370 --> 00:02:54,250 صرف تھوڑا سا منہ دبا ہنسنا "، کو بہتر بنانے کے". 102 00:02:54,250 --> 00:02:57,190 آپ کو بہتر بنانے کے کرنے کی کوشش کریں کیونکہ جب، مثال کے طور پر، یہ کیا ہوتا ہے. 103 00:02:57,190 --> 00:02:58,580 >> تو یہاں ایک خوبصورت تصویر ہے. 104 00:02:58,580 --> 00:02:59,720 یہ CS50 اپنے Daven ہے. 105 00:02:59,720 --> 00:03:03,740 اور ہم چاہتے تھے کہ لگتا ہے ان کی آنکھوں میں چمک پر میں توجہ مرکوز، 106 00:03:03,740 --> 00:03:05,870 یا کی عکاسی واضح طور پر تھا کہ برا آدمی 107 00:03:05,870 --> 00:03:07,820 سیکورٹی کیمرے کی طرف سے قبضہ کر لیا. 108 00:03:07,820 --> 00:03:10,330 یہ کیا ہوتا ہے جب ہے آپ کو ایک تصویر پر میں زوم کہ 109 00:03:10,330 --> 00:03:14,060 صرف ایک محدود تعداد ہے اس کے ساتھ منسلک بٹس کی. 110 00:03:14,060 --> 00:03:15,420 >> کہ آپ کو مل جائے گا کیا ہے. 111 00:03:15,420 --> 00:03:19,190 اور یقینا، Daven کی آنکھ میں ، شاید چھ پکسلز لیکن چار 112 00:03:19,190 --> 00:03:22,110 کہ بالکل وہی جو تحریر وہاں glimmering تھا. 113 00:03:22,110 --> 00:03:25,890 تو مسئلہ سیٹ چار بالآخر پڑے گا آپ کو خاص طور پر، اس دنیا کی 114 00:03:25,890 --> 00:03:28,090 کچھ کی نوعیت کی طرف سے ہم فائل I / O، جہاں کال 115 00:03:28,090 --> 00:03:31,000 I / O کے صرف ایک پسند ہیں طریقہ ہے ان پٹ اور پیداوار کہہ. 116 00:03:31,000 --> 00:03:34,280 >> تو اس طرح اب تک، بات چیت کے تمام ہم نے ایک کمپیوٹر کے ساتھ پڑا ہے 117 00:03:34,280 --> 00:03:36,770 کے ساتھ بڑی حد تک کیا گیا ہے آپ کی کی بورڈ اور سکرین، 118 00:03:36,770 --> 00:03:40,770 لیکن ہارڈ ڈسک کے ساتھ اتنا نہیں، یا لوگ باہر فائلوں کی بچت آپ 119 00:03:40,770 --> 00:03:41,620 اپنے آپ کو لکھنے. 120 00:03:41,620 --> 00:03:44,570 آپ کے پروگراموں ابھی تک ہے نہیں، پیدا، اور بچت کیا گیا 121 00:03:44,570 --> 00:03:46,270 اور ان کے اپنے فائلوں کو اپ ڈیٹ. 122 00:03:46,270 --> 00:03:47,150 >> ویسے، ایک فائل کیا ہے؟ 123 00:03:47,150 --> 00:03:48,105 ویسے، ایک JPEG کی طرح کچھ. 124 00:03:48,105 --> 00:03:50,520 یہ آپ کو ہو سکتا ہے ایک تصویر ہے ہے یا فیس بک پر اپ لوڈ، 125 00:03:50,520 --> 00:03:51,690 یا کہیں ویب پر دیکھیں. 126 00:03:51,690 --> 00:03:54,460 بے شک، کہ تصویر ہم صرف Daven کے دیکھا ایک JPEG تھا. 127 00:03:54,460 --> 00:03:57,570 اور کیا دلچسپ ہے JPEGs طرح فائلوں کے بارے میں 128 00:03:57,570 --> 00:04:02,170 وہ شناخت کیا جا سکتا ہے، عام طور پر، بٹس کی مخصوص پیٹرن کی طرف سے. 129 00:04:02,170 --> 00:04:05,200 >> دوسرے الفاظ میں، کہ یہ کیا ہے ایک GIF سے ایک JPEG ممتاز 130 00:04:05,200 --> 00:04:08,109 ایک لفظ سے ایک پنگ سے ایک ایکسل فائل سے دستاویز؟ 131 00:04:08,109 --> 00:04:09,900 ویسے، یہ صرف مختلف ہے بٹس کے پیٹرن. 132 00:04:09,900 --> 00:04:12,820 اور ان مختلف پیٹرن ہیں عام طور پر ان فائلوں کے آغاز میں. 133 00:04:12,820 --> 00:04:18,200 >> آپ کے کمپیوٹر میں ایک لفظ کھولتا ہے جب کہ تو DOC، یا ایک کمپیوٹر ایک JPEG کھولتا ہے جب، 134 00:04:18,200 --> 00:04:20,940 اس میں عام طور پر لگتا ہے فائل میں پہلے کئی بٹس. 135 00:04:20,940 --> 00:04:24,059 اور یہ ایک پیٹرن کو تسلیم کرتا ہے تو، یہ اوہ، یہ ایک تصویر ہے، کا کہنا ہے کہ. 136 00:04:24,059 --> 00:04:25,850 مجھ سے یہ ظاہر کرتے ہیں گرافک کے طور پر صارف. 137 00:04:25,850 --> 00:04:27,870 یا، اوہ، یہ ایک لفظ دستاویز کی طرح لگتا ہے. 138 00:04:27,870 --> 00:04:30,480 مجھے ایک مضمون کے طور پر صارف کو یہ ظاہر کرتے ہیں. 139 00:04:30,480 --> 00:04:33,020 >> مثال کے طور پر تو، JPEGs کے، یہ، ہے باہر کر دیتا ہے 140 00:04:33,020 --> 00:04:35,460 کافی بہتر ہڈ کے نیچے. 141 00:04:35,460 --> 00:04:40,140 لیکن سب سے زیادہ ہر میں پہلے تین بائٹس JPEG ان تین کی تعداد کے ساتھ شروع. 142 00:04:40,140 --> 00:04:44,680 تو بائٹ صفر، ایک، اور دو میں ہیں، سب سے زیادہ ہر JPEG، 255، اور پھر نمبر 143 00:04:44,680 --> 00:04:46,675 216، اور پھر نمبر 255. 144 00:04:46,675 --> 00:04:48,990 >> اور آپ کو قابل ہو جائے گا کیا اگلے ہفتے شروع کر 145 00:04:48,990 --> 00:04:52,920 اصل میں نیچے اندازی ہے JPEGs طرح فائلوں کی ہڈ 146 00:04:52,920 --> 00:04:57,210 اور بٹ نقشہ فائلوں کی طرح، اور دیکھ کر کیا ہمیشہ اس وقت تک کے لئے وہاں کیا گیا ہے 147 00:04:57,210 --> 00:04:58,650 آپ ایک کمپیوٹر کو استعمال کرتے ہوئے کیا گیا ہے کے طور پر. 148 00:04:58,650 --> 00:05:01,860 >> لیکن عام طور پر نہیں ہے کیا ہے اس طرح دشملو تعداد کی طرح لکھا. 149 00:05:01,860 --> 00:05:04,620 کمپیوٹر سائنسدانوں نہیں دشملو میں بات کرنے کے لئے ہوتے ہیں. 150 00:05:04,620 --> 00:05:06,139 وہ واقعی بائنری میں بات نہیں کرتے ہیں. 151 00:05:06,139 --> 00:05:07,930 عام طور پر، جب ہم چاہتے ہیں تعداد اظہار کرنے کے لئے، 152 00:05:07,930 --> 00:05:10,710 ہم اصل میں شش اعشاری کا استعمال، جو آپ کو یاد کر سکتے ہیں 153 00:05:10,710 --> 00:05:13,027 مسئلہ سیٹ، کا کہنا ہے کہ، سے چیلنج ہے جس سے ایک، 154 00:05:13,027 --> 00:05:14,610 آپ کو ایک مختلف نظام کے بارے میں سوچنے کے لئے. 155 00:05:14,610 --> 00:05:17,170 >> ہم، کورس کے، واقف ہیں نو کے ذریعے دشملو، صفر کے ساتھ. 156 00:05:17,170 --> 00:05:18,215 ہم بائنری کے بارے میں بات. 157 00:05:18,215 --> 00:05:20,710 اور ہم واقعی کی ضرورت نہیں ہے زیادہ سے زیادہ یہاں ہے کہ استعمال کرنے کے لئے 158 00:05:20,710 --> 00:05:22,470 باہر، کمپیوٹر استعمال کریں گے. 159 00:05:22,470 --> 00:05:24,900 لیکن پروگرامرز بہت ہو جائے گا اکثر، لیکن ہمیشہ نہیں، 160 00:05:24,900 --> 00:05:29,360 صرف جس کا مطلب ہے، شش اعشاری استعمال آپ کو آپ کے حروف تہجی میں 16 حروف ہے 161 00:05:29,360 --> 00:05:31,330 کے طور پر دو یا 10 کی مخالفت. 162 00:05:31,330 --> 00:05:34,530 >> تو کس طرح آپ کو اعلی شمار ہے شش اعشاری میں نو؟ 163 00:05:34,530 --> 00:05:41,120 تم جاؤ 0، 1، 2، 3، 4، 5، 6، 7، 8، 9، ایک، صرف کنونشن کی طرف سے C، D، E، F،، بی. 164 00:05:41,120 --> 00:05:43,540 لیکن جو اہم ہے کہ ہر ایک کو ہے ان کی ایک علامت ہے. 165 00:05:43,540 --> 00:05:44,340 کوئی 10 ہے. 166 00:05:44,340 --> 00:05:48,400 ہر ایک کی وجہ سے، کوئی 11، SE فی نہیں ہے آپ ہندسوں کے، دشملو میں پسند 167 00:05:48,400 --> 00:05:51,940 صرف بائنری میں طرح، صرف کرنا چاہئے کنونشن کی طرف سے ایک کردار، ہو. 168 00:05:51,940 --> 00:05:55,280 >> پھر ہم حروف تہجی ہے تاکہ شش اعشاری کے لئے ہمارے اختیار میں. 169 00:05:55,280 --> 00:05:58,600 تو ایک JPEG اگر آپ کی طرح دیکھو کیا ہے ان کی پہلی تین لکھنے تھے 170 00:05:58,600 --> 00:06:01,980 ، دشملو کے طور پر نہیں بائٹس لیکن مثال کے طور پر، شش اعشاری کے طور پر؟ 171 00:06:01,980 --> 00:06:03,640 اور کیوں ہیکس کہ مفید بھی ہے؟ 172 00:06:03,640 --> 00:06:05,290 >> ویسے، ایک مثال کے طور پر ایک فوری نظر. 173 00:06:05,290 --> 00:06:09,030 میں بٹس لکھنے تو کہ ان دشملو تعداد کی نمائندگی کرتے ہیں 174 00:06:09,030 --> 00:06:12,450 یہ ایک چھوٹا سا زنگ آلود ہو سکتا ہے اب چند ہفتوں سے، 175 00:06:12,450 --> 00:06:14,820 بائیں طرف ایک اور لیکن حق ایک بہت آسان ہیں. 176 00:06:14,820 --> 00:06:17,990 255 سب سے بڑی تعداد ہم تھا آٹھ بٹس کے ساتھ نمائندگی کر سکتے ہیں. 177 00:06:17,990 --> 00:06:18,820 یہ تمام لوگوں کے تھا. 178 00:06:18,820 --> 00:06:21,320 تو ہلکا ہے کہ صرف ایک دلچسپ مشرق سے ایک ہے. 179 00:06:21,320 --> 00:06:24,700 اور تم قسم کی کرتے ہیں تو ریاضی، آپ کو، یقینا، کہ نتیجہ نکالنا گا 180 00:06:24,700 --> 00:06:27,949 ایک کی ہے کہ پیٹرن اور zeros کی 216 کی نمائندگی کرتا ہے. 181 00:06:27,949 --> 00:06:30,240 تو صرف کے لئے شرط ہیں اب یہ درست ہے. 182 00:06:30,240 --> 00:06:31,730 لیکن کیوں یہ دلچسپ ہے؟ 183 00:06:31,730 --> 00:06:33,970 >> ویسے، ایک بائٹ، کورس کے، آٹھ بٹیں ہے. 184 00:06:33,970 --> 00:06:38,980 اور یہ آپ کو لگتا ہے کہ باہر کر دیتا ہے چار بٹیں کے دو حصوں کے طور پر ایک بائٹ کی، 185 00:06:38,980 --> 00:06:39,500 اس طرح. 186 00:06:39,500 --> 00:06:41,000 مجھے صرف کچھ جگہ شامل ہیں. 187 00:06:41,000 --> 00:06:42,550 تو اس سے پہلے، اس کے بعد. 188 00:06:42,550 --> 00:06:46,520 میں صرف کچھ سفید جگہ شامل کیا ہے یہاں تصور کی خاطر. 189 00:06:46,520 --> 00:06:51,840 ہم کس طرح اب میں نمائندگی کر سکتے ہیں، کا کہنا ہے کہ، شش اعشاری بٹس میں سے ہر ایک کواڈ، 190 00:06:51,840 --> 00:06:52,880 چار بٹس میں سے ہر ایک سیٹ؟ 191 00:06:52,880 --> 00:06:56,420 >> مثال کے طور پر، بائیں طرف تو اب، ہم بائنری میں 1111 ہے. 192 00:06:56,420 --> 00:07:00,420 دشملو میں یہ تعداد کیا ہے، آپ کو ریاضی کرتے ہیں؟ 193 00:07:00,420 --> 00:07:03,780 آپ والوں کی جگہ ہے، twos جگہ، چوکے کی جگہ، اور آٹھ جگہ. 194 00:07:03,780 --> 00:07:04,341 >> سامعین: 15. 195 00:07:04,341 --> 00:07:05,340 DAVID J. MALAN: یہ 15 ہے. 196 00:07:05,340 --> 00:07:08,340 تو ہم آٹھ کے علاوہ چار کرتے ہیں کے علاوہ دو کے علاوہ ایک، ہم 15 ملتا ہے. 197 00:07:08,340 --> 00:07:11,790 تو میں نیچے 15 لکھ سکتے ہیں 1111، لیکن یہاں پورے نقطہ 198 00:07:11,790 --> 00:07:13,190 شش اعشاری ہے، نہیں دشملو. 199 00:07:13,190 --> 00:07:17,310 تو بجائے اس کے نیچے لکھ کے 15، 1-5، میں، ہیکس میں لکھنے جا رہا ہوں 200 00:07:17,310 --> 00:07:22,311 اگر آپ کو، واپس لگتا ہے کہ جس میں F تک صفر، کیا 15 کی جا رہی ہے؟ 201 00:07:22,311 --> 00:07:22,810 سامعین: F. 202 00:07:22,810 --> 00:07:24,434 DAVID J. MALAN: تو اس کی ایف باہر کر دیتا ہے. 203 00:07:24,434 --> 00:07:29,140 اور تم کہہ کر کہ باہر کام کر سکتے ہیں، 10 ہے تو ٹھیک ہے،، پھر ٹھیک ہے، F 15 ہے. 204 00:07:29,140 --> 00:07:33,250 تو یقینا، ہم کو دوبارہ سے لکھنا کر سکتے ہیں F پر کے طور پر تعداد کی یہ وہی سیٹ. 205 00:07:33,250 --> 00:07:35,750 اور پھر ہم ریاضی کے تھوڑا سا کرتے ہیں تو، ہم کہ ڈی ہے کہ نتیجہ نکالنا گا. 206 00:07:35,750 --> 00:07:38,650 آٹھ، بہت آسان ہے کیونکہ ہم آٹھ جگہ میں ایک ایک ہے. 207 00:07:38,650 --> 00:07:40,620 اور پھر، ہم F پر کے ایک جوڑے کی ہے. 208 00:07:40,620 --> 00:07:44,669 >> تو کیا انسانوں کنونشن کی طرف سے ایسا کرنے کی کوشش کرتے ہیں وہ استعمال کرتے ہیں جب وہ صرف شش اعشاری ہے 209 00:07:44,669 --> 00:07:47,710 زیادہ succinctly یہ تھوڑا لکھنے، کہ سفید جگہ کے سب سے زیادہ سے چھٹکارا حاصل. 210 00:07:47,710 --> 00:07:50,890 اور صرف سپر واضح ہو یہ شش اعشاری ہے کہ قارئین، 211 00:07:50,890 --> 00:07:54,670 میں سادہ کنونشن انسان آپ کو صفر لکھنا ہے 212 00:07:54,670 --> 00:07:58,000 دیگر کوئی مطلب نہیں ہے جس میں ایکس، کے ایک بصری شناخت سے، 213 00:07:58,000 --> 00:07:59,590 یہاں ایک ہیکس تعداد آتا ہے. 214 00:07:59,590 --> 00:08:04,210 >> اور پھر، آپ کو، F دو ہندسے ڈال اس معاملے میں F، تو D ایک، پھر ایف ایف. 215 00:08:04,210 --> 00:08:06,700 تو لمبی کہانی مختصر، شش اعشاری صرف جاتا ہے 216 00:08:06,700 --> 00:08:11,990 مفید ہو میں سے ہر ایک کی وجہ سے اس ہندسے، F تک صفر، بالکل لائنز 217 00:08:11,990 --> 00:08:13,880 چار بٹس کی ایک پیٹرن کے ساتھ. 218 00:08:13,880 --> 00:08:18,080 >> آپ کو دو شش اعشاری ہندسے ہیں تو، صفر بار بار F، کے ذریعے، 219 00:08:18,080 --> 00:08:20,256 کہ بالکل آپ کو دیتا ہے آٹھ بٹیں یا ایک بائٹ. 220 00:08:20,256 --> 00:08:22,380 اس کے لئے جاتا ہے یہی وجہ ہے کہ روایتی مفید ہو. 221 00:08:22,380 --> 00:08:24,990 کوئی دانشور ہے واقعی اس سے باہر کے مواد، 222 00:08:24,990 --> 00:08:27,010 اس کی اصل افادیت کے مقابلے میں دیگر. 223 00:08:27,010 --> 00:08:29,310 >> اب JPEGs کے صرف نہیں ہیں گرافکس کے لئے کی تراتیب دائر. 224 00:08:29,310 --> 00:08:33,230 تم وہاں ہو یاد کر سکتے ہیں دنیا میں اس طرح کی فائلوں کو، 225 00:08:33,230 --> 00:08:34,830 کم از کم ایک چند سال سے. 226 00:08:34,830 --> 00:08:37,580 >> تو یہ اصل میں تھا ونڈوز ایکس پی میں نصب 227 00:08:37,580 --> 00:08:39,960 دنیا بھر میں پی سی کی لاکھوں پر. 228 00:08:39,960 --> 00:08:43,000 اور یہ ایک بٹ نقشہ فائل، BMP تھا. 229 00:08:43,000 --> 00:08:47,690 اور ایک بٹ نقشہ فائل کے طور پر، آپ کو اگلے دیکھیں گے ہفتے، صرف بندیاں کی ایک پیٹرن کا مطلب ہے، 230 00:08:47,690 --> 00:08:51,710 وہ کہتے رہے ہیں کے طور پر پکسلز، ایک بہت، بٹس پر نقشہ. 231 00:08:51,710 --> 00:08:55,160 >> تو کیا اگرچہ، دلچسپ ہے، اس فائل کی شکل، BMP کے بارے میں ہے، 232 00:08:55,160 --> 00:08:58,590 کہ ہڈ کے نیچے، یہ صرف تین بائٹس سے زیادہ ہے 233 00:08:58,590 --> 00:09:01,020 تاکہ، اس کے ہیڈر تحریر ، پہلے چند کاٹنے بات کرنے کے لئے. 234 00:09:01,020 --> 00:09:03,330 یہ اصل میں ایک چھوٹا سا لگ رہا ہے پہلی نظر میں پیچیدہ. 235 00:09:03,330 --> 00:09:04,704 اور تم P سیٹ میں دیکھیں گے. 236 00:09:04,704 --> 00:09:06,810 اور کچھ حاصل کرنے کے اس کی خاص طور پر اب باہر 237 00:09:06,810 --> 00:09:10,720 صرف حقیقت یہ ہے کہ کے طور پر، اتنا اہم نہیں ہے کہ ہر بٹ نقشہ کے آغاز میں 238 00:09:10,720 --> 00:09:13,823 فائل، ایک گرافیکل فارمیٹ، اعداد کی ایک پوری چڑھانے ہے. 239 00:09:13,823 --> 00:09:14,980 240 00:09:14,980 --> 00:09:16,720 >> اب مائیکروسافٹ، اس کی شکل کے مصنف، 241 00:09:16,720 --> 00:09:18,820 ان کو فون کرنے کے لئے جاتا چیزیں نہیں ints اور حروف 242 00:09:18,820 --> 00:09:22,259 اور floats لیکن الفاظ اور D الفاظ اور چاہتا ہے اور بائٹس. 243 00:09:22,259 --> 00:09:23,800 تو وہ صرف مختلف اعداد و شمار اقسام ہیں. 244 00:09:23,800 --> 00:09:25,170 وہ مختلف ناموں ہیں ایک ہی بات کے لئے. 245 00:09:25,170 --> 00:09:26,740 لیکن آپ P سیٹ چار میں دیکھیں گے کہ. 246 00:09:26,740 --> 00:09:31,450 >> لیکن اس کا کہنا ہے کہ صرف یہ ہے کہ ایک انسان تو پر کچھ BMP فائل ڈبل کلکس ان 247 00:09:31,450 --> 00:09:35,015 یا اس کی ہارڈ ڈرائیو، اور ایک ونڈو کو کھولتا ہے اس کا یا اس کے کہ تصویر دکھا اپ، 248 00:09:35,015 --> 00:09:38,500 کہ آپریٹنگ کیونکہ ہوا نظام شاید نہ صرف محسوس کیا 249 00:09:38,500 --> 00:09:41,460 BMP فائل توسیع فائل کے نام میں، 250 00:09:41,460 --> 00:09:45,010 بلکہ حقیقت یہ ہے کہ وہاں کچھ بٹس کی طرز پر کنونشن 251 00:09:45,010 --> 00:09:47,490 بہت شروع میں کہ بٹ نقشہ فائل کی. 252 00:09:47,490 --> 00:09:50,270 >> لیکن اب پر توجہ مرکوز اس طرح ایک پیچیدہ فائل، 253 00:09:50,270 --> 00:09:52,120 لیکن اس کی بجائے اس طرح کچھ. 254 00:09:52,120 --> 00:09:55,190 میں، gedit میں یہاں لگتا ہے صرف آغاز ہے 255 00:09:55,190 --> 00:09:57,070 بہت آسان ہے کہ ایک پروگرام کی. 256 00:09:57,070 --> 00:09:58,860 میں نے کچھ اوپر بھی شامل ہے. 257 00:09:58,860 --> 00:10:02,120 اب میں ہے # شامل "structs.h" لیکن میں ایک لمحے میں واپس آ جائیں گے. 258 00:10:02,120 --> 00:10:03,974 لیکن یہ اب کے لئے مفید ہے. 259 00:10:03,974 --> 00:10:05,890 تو یہ ایک پروگرام ہے لاگو کرنے کے لئے جا رہا ہے 260 00:10:05,890 --> 00:10:07,335 رجسٹرار کے ڈیٹا بیس کی طرح. 261 00:10:07,335 --> 00:10:09,710 تو طالب علموں کی ایک ڈیٹا بیس، اور دنیا میں ہر طالب علم 262 00:10:09,710 --> 00:10:13,190 شاید کچھ ایک کا نام اور ایک گھر ہے اور دیگر چیزیں، لیکن ہم اسے سادہ رکھیں گے. 263 00:10:13,190 --> 00:10:15,140 ہر طالب علم کو ایک کا نام اور ایک گھر ہے. 264 00:10:15,140 --> 00:10:17,700 >> میں لکھنا چاہتا تھا تو جس کا مقصد زندگی میں پروگرام 265 00:10:17,700 --> 00:10:19,860 صرف سے iterate کرنے کے لئے کیا گیا تھا تین تک پر صفر، 266 00:10:19,860 --> 00:10:22,070 تین طالب علموں ہے تو ہارورڈ یونیورسٹی میں. 267 00:10:22,070 --> 00:10:25,350 اور میں صرف GetString استعمال، حاصل کرنے کے لئے چاہتے ہیں، ہر طالب علم کے نام اور گھر، 268 00:10:25,350 --> 00:10:26,600 اور پھر صرف ان لوگوں کو باہر پرنٹ. 269 00:10:26,600 --> 00:10:28,630 >> اس طرح کے ہفتے کی طرح ہے ایک ہفتہ قبل دو چیزیں اب، 270 00:10:28,630 --> 00:10:30,810 میں صرف کے لئے چاہتے ہیں، جہاں لوپ یا اس طرح کچھ. 271 00:10:30,810 --> 00:10:34,500 اور میں GetString ایک چند فون کرنا چاہتے ہیں اوقات، اور پھر چند بار F پرنٹ. 272 00:10:34,500 --> 00:10:37,340 تو میں اگرچہ، یہ کیسے ہو سکتا ہے، جب ایک کا نام اور ایک گھر دونوں 273 00:10:37,340 --> 00:10:39,070 ہر طالب علم کے لئے شامل کر رہے ہیں؟ 274 00:10:39,070 --> 00:10:42,830 >> تو میری پہلی سنتیں طاقت اس طرح کچھ کرنا ہو. 275 00:10:42,830 --> 00:10:49,620 میں سب سے پہلے اچھی طرح سے، مجھے دے، کہہ سکتے ہیں، ، نام نامی ڈور کی ایک صف ہے. 276 00:10:49,620 --> 00:10:51,530 اور میں نے ایک hardcode تین یہاں نہیں کرنا چاہتا. 277 00:10:51,530 --> 00:10:53,064 کیا میں وہاں میں ڈال کرنا چاہتے ہیں؟ 278 00:10:53,064 --> 00:10:55,730 یہ صرف ہے کیونکہ، طالب علموں کو تو سب سے اوپر اعلان ایک مسلسل، 279 00:10:55,730 --> 00:10:57,860 میں hardcode کرنے کی ضرورت نہیں صرف اتنا ایک سے زیادہ مقامات میں تین. 280 00:10:57,860 --> 00:11:00,859 اس طرح، میں، یہ ایک جگہ تبدیل کر سکتے ہیں اور یہ ہر جگہ تبدیلی پر اثر انداز. 281 00:11:00,859 --> 00:11:04,470 اور پھر، میں کر سکتا ہے سٹرنگ طلباء واقع. 282 00:11:04,470 --> 00:11:10,250 >> اور اب، میں کچھ اس طرح کر سکتا ہے میں طالب علموں <؛ کے لئے (میں = 0 int میں + +. 283 00:11:10,250 --> 00:11:14,390 تو میں تیزی سے ٹائپ کر رہا ہوں، لیکن یہ ہے اب شاید واقف نحو. 284 00:11:14,390 --> 00:11:17,030 >> اور اب، اس سے زیادہ حال ہی میں کیا گیا تھا. 285 00:11:17,030 --> 00:11:22,890 مجھے ویں میں ڈال کرنا چاہتے ہیں تو طالب علم کا نام، مجھے ایسا لگتا ہے. 286 00:11:22,890 --> 00:11:26,480 اور پھر، نہ نام لیکن گھروں میں بریکٹ. 287 00:11:26,480 --> 00:11:29,930 میں اس، GetString کرتے، اور دو مجھے واپس جانا ہے اور اس لائن کو ٹھیک. 288 00:11:29,930 --> 00:11:30,430 اتفاق؟ 289 00:11:30,430 --> 00:11:31,200 اختلاف؟ 290 00:11:31,200 --> 00:11:32,366 یہ بہت صارف دوستانہ نہیں ہے. 291 00:11:32,366 --> 00:11:33,890 میں کیا کروں پر صارف نہیں بتایا ہے. 292 00:11:33,890 --> 00:11:36,520 >> لیکن اب، میں تو اس کے علاوہ بعد میں، دو کے لئے چاہتا تھا 293 00:11:36,520 --> 00:11:40,060 کا کہنا ہے کہ، ان چیزوں کو پرنٹ باہر کر تو TODO بعد. 294 00:11:40,060 --> 00:11:42,330 میں زیادہ کے ساتھ کیا کرنے جا رہا ہوں بلاشبہ اس this-- 295 00:11:42,330 --> 00:11:45,970 کے درست عمل نام اور گھروں، تین ہو رہی ہے 296 00:11:45,970 --> 00:11:48,870 ایک صارف کی طرف سے ہر ایک کی ان کی کل،. 297 00:11:48,870 --> 00:11:51,280 >> لیکن یہ بہت اچھا ڈیزائن، ٹھیک نہیں ہے؟ 298 00:11:51,280 --> 00:11:55,220 کیا ایک طالب علم کو صرف ایک نام ہے اور ایک گھر، لیکن یہ بھی ایک شناختی نمبر، 299 00:11:55,220 --> 00:11:57,770 اور ایک ٹیلی فون نمبر، اور ایک ای میل ایڈریس، 300 00:11:57,770 --> 00:12:00,280 اور شاید ایک گھر کے صفحے، اور شاید ایک ہی ٹوئٹر ہینڈل، 301 00:12:00,280 --> 00:12:03,730 اور دیگر تفصیلات کی کسی بھی تعداد ایک طالب علم یا ایک شخص کے ساتھ منسلک، 302 00:12:03,730 --> 00:12:04,610 عام طور پر. 303 00:12:04,610 --> 00:12:07,720 ہم شامل کرنے کے لئے شروع ہو جائے گا کے لئے کس طرح اس پروگرام کے لئے فعالیت؟ 304 00:12:07,720 --> 00:12:14,080 >> ٹھیک ہے، میں شاید آسان طریقہ کی طرح محسوس ، کی طرح کچھ کا کہنا ہے کہ کرنے کے لئے ہو، 305 00:12:14,080 --> 00:12:16,490 آئی ڈی کے طالب علموں int کی. 306 00:12:16,490 --> 00:12:18,380 تو میں وہاں میں ان کے تمام شناخت ڈال کر سکتے ہیں. 307 00:12:18,380 --> 00:12:22,240 اور پھر، کچھ کے لئے فون نمبر کی طرح، 308 00:12:22,240 --> 00:12:24,400 میں کس طرح اس بات کا یقین نہیں ہوں ابھی تک اس کی نمائندگی کرتے ہیں. 309 00:12:24,400 --> 00:12:30,280 تو آگے اور صرف کال جانے یہ طالب علموں، ٹوئٹر جس 310 00:12:30,280 --> 00:12:33,550 ایک چھوٹا سا عجیب ہے، لیکن ہے اور کھیتوں ایک گروپ زیادہ. 311 00:12:33,550 --> 00:12:36,360 >> میں مؤثر طریقے سے کرنے کے لئے شروع کر دیا ہے کاپی کریں اور یہاں پیسٹ. 312 00:12:36,360 --> 00:12:39,416 اور اس خوبصورت اضافہ کرنے کے لئے کی جا رہی ہے بہت تیزی سے unwieldy تھا، ٹھیک ہے؟ 313 00:12:39,416 --> 00:12:42,290 وہاں تھے تو یہ اچھا نہیں ہو گا دنیا میں ایک آنکڑا ڈھانچہ نام سے جانا جاتا 314 00:12:42,290 --> 00:12:45,600 ایک int یا ایک تار، لیکن کچھ کے طور پر اعلی سطح، ایک تجرید، تو 315 00:12:45,600 --> 00:12:47,570 ایک طالب علم کے طور پر جانا جاتا، بات کرنے کے لئے؟ 316 00:12:47,570 --> 00:12:50,220 C بلٹ میں کے ساتھ نہیں آیا تھا طالب علموں کے لئے فعالیت، 317 00:12:50,220 --> 00:12:52,260 لیکن میں نے اسے اس طرح دینا چاہتا تھا تو کیا ہوگا؟ 318 00:12:52,260 --> 00:12:55,640 >> ویسے، اس میں جا رہا ہوں، باہر کر دیتا ہے ، structs.h یہاں نامی ایک فائل کو کھولنے کے 319 00:12:55,640 --> 00:12:57,090 اور آپ بالکل ایسا کر سکتے ہیں. 320 00:12:57,090 --> 00:12:58,290 اور اب ہم یہ کر شروع کرنے کے لئے جا رہے ہیں. 321 00:12:58,290 --> 00:13:01,490 اور P سیٹ تین کے ہڈ کے نیچے، آپ نے پہلے ہی اب یہ کر رہا ہوں. 322 00:13:01,490 --> 00:13:05,920 ایک G RECT کے طور پر ایسی کوئی بات نہیں ہے یا پروگرامنگ زبان سی میں ایک جی اوول 323 00:13:05,920 --> 00:13:10,570 >> سٹینفورڈ میں لوگ ان سے لاگو یہاں اس نقطہ نظر کا استعمال کرتے ہوئے کی طرف سے اعداد و شمار اقسام، 324 00:13:10,570 --> 00:13:13,900 ان کے اپنے نئے اعداد و شمار کا اعلان ایک نئے مطلوبہ الفاظ کا استعمال کرتے ہوئے اقسام 325 00:13:13,900 --> 00:13:16,744 کہا struct اور دوسرے ایک کہا typedef کے. 326 00:13:16,744 --> 00:13:19,660 اور یقینا، اگرچہ نحو سامان سے تھوڑا مختلف لگ رہا ہے 327 00:13:19,660 --> 00:13:23,550 ہم میں، پہلے دیکھا ہے اصول، یہ سپر آسان ہے. 328 00:13:23,550 --> 00:13:25,297 >> یہ صرف "ایک قسم کی وضاحت." کا مطلب 329 00:13:25,297 --> 00:13:27,255 یہ ایک ہونے جا رہا ہے ساخت، اور ایک ڈھانچہ 330 00:13:27,255 --> 00:13:29,400 صرف ایک کنٹینر کی طرح ہے ایک سے زیادہ چیزوں کے لئے. 331 00:13:29,400 --> 00:13:31,780 اور اس کی ساخت کی جا رہی ہے نام ایک تار کرنے کے لئے، 332 00:13:31,780 --> 00:13:33,210 اور ایک تار گھر بلایا. 333 00:13:33,210 --> 00:13:37,520 اور صرف کی سہولت کے لئے، کہتے ہیں، اس پورے آنکڑا ڈھانچہ طالب علم. 334 00:13:37,520 --> 00:13:40,320 >> تو لمحے آپ کو حاصل کرنے کے لئے نیم وقفہ، اب آپ کے پاس 335 00:13:40,320 --> 00:13:43,280 آپ کے اپنے اعداد و شمار کے پیدا قسم نامی طالب علم 336 00:13:43,280 --> 00:13:46,420 اب کہ، int کے ساتھ کھڑا ہے اور فلوٹ، اور چار، اور سٹرنگ، 337 00:13:46,420 --> 00:13:50,270 اور جی RECT، اور جی اوول، اور کسی بھی تعداد دوسری چیزوں کے لوگوں کی ایجاد ہے. 338 00:13:50,270 --> 00:13:53,340 >> تو اس کے بارے میں مفید ہے اب میں واپس جائیں تو یہ ہے کہ 339 00:13:53,340 --> 00:13:57,430 0 struct اور اس کو ختم کرنے میں نے لکھا ہے جس پر عمل درآمد، 340 00:13:57,430 --> 00:14:02,080 یہاں پیشگی، کہ تمام نوٹس ناگزیر messiness سے کی ہے کہ 341 00:14:02,080 --> 00:14:05,490 میں نے کہا کے طور پر ہو رہا ہے شروع کرنے کے بارے میں تھا فون نمبر اور ٹوئٹر اور تمام 342 00:14:05,490 --> 00:14:07,370 کرنے کے لئے ان دوسری چیزوں ایک طالب علم کی تعریف، 343 00:14:07,370 --> 00:14:11,810 اب یہ اور succinctly لپیٹ ہے طالب علموں کی صرف ایک صف کے طور پر. 344 00:14:11,810 --> 00:14:15,500 >> اور ان طالب علموں میں سے ہر ایک اب اس کے اندر ایک سے زیادہ چیزیں ہیں. 345 00:14:15,500 --> 00:14:16,930 ہے تاکہ صرف ایک سوال چھوڑ دیتا ہے. 346 00:14:16,930 --> 00:14:19,700 آپ کس طرح کے نام پر حاصل کرتے ہیں، اور گھر، اور ID، 347 00:14:19,700 --> 00:14:21,640 اور جو کچھ بھی ہے طالب علم کے اندر؟ 348 00:14:21,640 --> 00:14:22,930 سپر آسان، کے ساتھ ساتھ. 349 00:14:22,930 --> 00:14:25,730 نئے نحو، لیکن ایک سادہ خیال. 350 00:14:25,730 --> 00:14:29,239 >> صف میں آپ کو صرف انڈیکس، ہم نے گزشتہ ہفتے اور اس کے طور پر کیا. 351 00:14:29,239 --> 00:14:31,030 اور کیا واضح طور پر ہے نحو کی نئی ٹکڑا ہے؟ 352 00:14:31,030 --> 00:14:32,590 353 00:14:32,590 --> 00:14:35,880 بس.، جس کا مطلب ہے "اندر جاؤ ساخت اور میدان کہا جاتا ہو 354 00:14:35,880 --> 00:14:39,030 نام،، گھر بلایا میدان طالب علم کہا جاتا میدان ملتا ہے. " 355 00:14:39,030 --> 00:14:41,940 >> تو P سیٹ تین میں، آپ ہیں اب بھی اس پر کام کر رہے، 356 00:14:41,940 --> 00:14:44,020 اب بھی اور سب سے زیادہ لوگ ، آپ کے طور پر احساس ہے کہ رہے ہیں 357 00:14:44,020 --> 00:14:46,130 کی طرح چیزوں کا استعمال شروع جی منتقلی اور جی ovals کے 358 00:14:46,130 --> 00:14:50,201 اور دوسری چیزوں کے لئے لگ رہے ہو نہیں ہے ہفتے صفر، ایک، یا دو سے آتے ہیں، 359 00:14:50,201 --> 00:14:52,950 سٹینفورڈ کیونکہ احساس ہے کہ کچھ نئے اعداد و شمار اقسام کا اعلان. 360 00:14:52,950 --> 00:14:56,160 >> اور یقینا، کہ بالکل کیا ہم کریں گے P سیٹ چار میں، کے ساتھ ساتھ، کرتے، جب 361 00:14:56,160 --> 00:14:59,880 ہم چیزوں کے ساتھ نمٹنے کے لئے شروع تصاویر، bitmaps کے، اور زیادہ کی طرح. 362 00:14:59,880 --> 00:15:02,882 تو یہ صرف ایک جھلکی ہے اور ایک ہے آنے کے لئے کیا ہے کے لئے ذہنی ماڈل. 363 00:15:02,882 --> 00:15:04,590 اب، میں بلا ضرورت تاخیر تھوڑا سا اس صبح. 364 00:15:04,590 --> 00:15:09,560 میں کیا دیکھنے کے لئے قسم کی عجیب تھا مائیکروسافٹ وال پیپر اصل 365 00:15:09,560 --> 00:15:10,310 آج کی طرح لگتا ہے. 366 00:15:10,310 --> 00:15:15,200 اور یہ 2006 میں کسی باہر کر دیتا ہے اصل میں تقریبا خاص طور پر لئے گئے تھے 367 00:15:15,200 --> 00:15:19,210 اسی جگہ حقیقت میں تصویر کیا ان دنوں اس طرح لگ رہا ہے. 368 00:15:19,210 --> 00:15:21,380 میدان اب تھوڑا overgrown ہے. 369 00:15:21,380 --> 00:15:24,850 >> تو تصاویر کے اب بات، یہاں Daven واپس لانے 370 00:15:24,850 --> 00:15:26,890 سکرین اور نکولس پر، اور صرف آپ کو یاد دلانے 371 00:15:26,890 --> 00:15:30,540 کہ آپ کو دوپہر کے کھانے کے لئے ہمارے ساتھ شامل کرنے کے لئے چاہتے ہیں تو ہمارے معمول کے یو آر ایل پر اس جمعہ، سر 372 00:15:30,540 --> 00:15:31,440 یہاں. 373 00:15:31,440 --> 00:15:33,530 >> تو جہاں ہم نے پیر کو بند کر چھوڑ دیا؟ 374 00:15:33,530 --> 00:15:35,140 ہم، اس مسئلہ کو متعارف کرایا؟ 375 00:15:35,140 --> 00:15:37,610 یہ بظاہر ایک درست تھا سویپ کے عمل، 376 00:15:37,610 --> 00:15:40,460 جس کے تحت آپ کو، دو ints کے لے ایک، بی کہا جاتا، ایک ملاقات کی 377 00:15:40,460 --> 00:15:44,130 لورا یہاں کیا، جیسا کہ ان کے تبادلہ دودھ اور پانی کے ساتھ اسٹیج پر، 378 00:15:44,130 --> 00:15:46,820 ایک عارضی استعمال کرتے ہوئے کی طرف سے متغیر، یا ایک خالی کپ، 379 00:15:46,820 --> 00:15:50,540 ہم ایک اور ایک میں B ڈال سکتے ہیں تا کہ چیزوں کی گندگی کرنے کے بغیر بی. 380 00:15:50,540 --> 00:15:51,560 ہم نے ایک متغیر کا استعمال کیا. 381 00:15:51,560 --> 00:15:52,870 یہ عارضی کہا جاتا ہے. 382 00:15:52,870 --> 00:15:55,520 >> لیکن بنیادی کیا تھا پیر کو اس کوڈ کے ساتھ مسئلہ ہے؟ 383 00:15:55,520 --> 00:15:57,700 384 00:15:57,700 --> 00:15:58,870 یہاں مسئلہ کیا تھا؟ 385 00:15:58,870 --> 00:16:00,106 386 00:16:00,106 --> 00:16:00,605 جی ہاں. 387 00:16:00,605 --> 00:16:01,970 >> سامعین: یہ زیادہ جگہ لیتا ہے. 388 00:16:01,970 --> 00:16:04,719 >> DAVID J. MALAN: زیادہ لیتا ہے خلائی، میں ایک متغیر کا استعمال کرتے ہوئے کر رہا ہوں کیونکہ، 389 00:16:04,719 --> 00:16:05,400 اور یہ ٹھیک ہے. 390 00:16:05,400 --> 00:16:07,300 یہ سچ ہے، لیکن میں ہوں یہ ٹھیک ہے کا کہنا ہے کہ کرنے کے لئے جا. 391 00:16:07,300 --> 00:16:10,030 یہ گرینڈ میں صرف 32 بٹس ہے چیزوں کی منصوبہ بندی، تو نہیں ایک بڑا سودا. 392 00:16:10,030 --> 00:16:10,655 دیگر خیالات؟ 393 00:16:10,655 --> 00:16:12,572 سامعین: یہ صرف سویپ مقامی طور پر متغیر. 394 00:16:12,572 --> 00:16:13,571 DAVID J. MALAN: بالکل. 395 00:16:13,571 --> 00:16:15,090 یہ صرف مقامی طور پر متغیر سویپ. 396 00:16:15,090 --> 00:16:18,173 کسی بھی وقت آپ کو ایک تقریب کال کی وجہ سے میں Annenberg میں سے ٹرے تھا 397 00:16:18,173 --> 00:16:19,840 آخری بار، آپ کو سب سے نیچے پر اہم ہے. 398 00:16:19,840 --> 00:16:23,560 جیسے ہی آپ کے نام سے ایک تقریب کہتے ہیں کے طور پر سویپ، سویپ X اور Y حاصل نہیں ہے، 399 00:16:23,560 --> 00:16:24,400 اصل اقدار. 400 00:16:24,400 --> 00:16:26,392 کیا ہم دعوی کیا، سویپ حاصل کرتا ہے؟ 401 00:16:26,392 --> 00:16:27,100 سامعین: نقول. 402 00:16:27,100 --> 00:16:28,090 DAVID J. MALAN: ان کی کاپیاں تو. 403 00:16:28,090 --> 00:16:31,120 تو یہ آپ ہیں تو، ایک اور دو ہو جاتا ہے آخری بار سے مثال یاد، 404 00:16:31,120 --> 00:16:34,730 لیکن ایک اور دو کی ایک کاپی اس کامیابی کے ساتھ تبدیل کر رہے ہیں. 405 00:16:34,730 --> 00:16:38,550 لیکن بدقسمتی سے آخر میں، ان اقدار کو اب بھی ایک ہی ہیں. 406 00:16:38,550 --> 00:16:41,880 تو ہم ساتھ اس کو دیکھ سکتے ہیں ہماری نئے دوست، امید ہے کہ GDB، 407 00:16:41,880 --> 00:16:45,180 آپ یا آپ کی TFs اور CA ہے کہ مندرجہ ذیل کے طور پر کی طرف آپ کی رہنمائی کی گئی. 408 00:16:45,180 --> 00:16:51,210 >> تو کوئی سویپ یاد چلو like-- لگتا ہے اس طرح this-- لگتا ہے کھولنے. 409 00:16:51,210 --> 00:16:54,160 ہم دو، ایک سے Y ایکس initialized ہے. 410 00:16:54,160 --> 00:16:55,620 پرنٹ F کی ایک گروپ تھا. 411 00:16:55,620 --> 00:16:58,080 لیکن اس وقت، اہم کال یہاں، تبادلہ کرنے کے لئے تھا جس میں 412 00:16:58,080 --> 00:17:00,260 بالکل کوڈ ہم ہے پہلے صرف ایک لمحے کو دیکھا. 413 00:17:00,260 --> 00:17:03,180 جو سب سے پہلے درست ہے نظر، لیکن فعل، 414 00:17:03,180 --> 00:17:06,800 اس پروگرام کی وجہ سے کام نہیں کرتا، اسے مستقل طور پر X اور Y تبادلہ نہیں ہے. 415 00:17:06,800 --> 00:17:10,190 >> تو، ایک فوری گرم یہ دیکھنے دو یہاں GDB، ایک ./noswap کے ساتھ. 416 00:17:10,190 --> 00:17:11,867 417 00:17:11,867 --> 00:17:15,200 زبردست معلومات کا ایک گروپ ہے کہ میں اب کے لئے کنٹرول L کے ساتھ سے چھٹکارا مل جائے گا. 418 00:17:15,200 --> 00:17:17,516 اور اب، میں جا رہا ہوں آگے بڑھو اور اس کے چلانے. 419 00:17:17,516 --> 00:17:19,349 اور بدقسمتی سے، کہ کہ مفید نہیں تھا. 420 00:17:19,349 --> 00:17:22,355 یہ اس کے اندر پروگرام بھاگ گیا پروگرام، GDB، debugger کی ملاقات کی 421 00:17:22,355 --> 00:17:23,730 لیکن یہ میرے ارد گرد ڑکیلنا کی اجازت نہیں تھی. 422 00:17:23,730 --> 00:17:26,229 >> تو میں نے اصل روک سکتے ہیں کس طرح اس پروگرام کے اندر عملدرآمد؟ 423 00:17:26,229 --> 00:17:27,410 424 00:17:27,410 --> 00:17:28,329 تو توڑنے. 425 00:17:28,329 --> 00:17:32,340 اور میں کسی پر توڑ سکتا ہے لائن نمبر، ایک، 10، 15. 426 00:17:32,340 --> 00:17:35,530 لیکن میں نے بھی علامتی توڑ سکتا ہے وقفے اہم کہہ کر. 427 00:17:35,530 --> 00:17:38,980 اور یہ کہ ایک وقفے کے قائم کرنے کے لئے جا رہا ہے نقطہ، بظاہر اہم لائن 16 میں. 428 00:17:38,980 --> 00:17:40,050 اور جہاں 16 لائن ہے؟ 429 00:17:40,050 --> 00:17:42,960 کوڈ تک جانے دو اور noswap تک جانا. 430 00:17:42,960 --> 00:17:46,930 اور یقینا، 16 لائن ہے بہت پہلے پروگرام میں. 431 00:17:46,930 --> 00:17:52,130 >> تو اب، میں آگے بڑھو اور ٹائپ کریں ، اس وقت چلانے درج کریں، اسے روک دیا. 432 00:17:52,130 --> 00:17:53,080 تو ارد گرد ڑکیلنا ہیں. 433 00:17:53,080 --> 00:17:55,716 کیوں ایکس صفر ہے x-- پرنٹ؟ 434 00:17:55,716 --> 00:17:56,705 435 00:17:56,705 --> 00:17:57,830 اور ڈالر کا نشان کو نظر انداز. 436 00:17:57,830 --> 00:17:59,725 یہ اچھے کے لئے صرف ہے پروگرام کے استعمال کے. 437 00:17:59,725 --> 00:18:00,780 438 00:18:00,780 --> 00:18:03,140 کیوں اس وقت ایکس صفر ہے؟ 439 00:18:03,140 --> 00:18:03,640 جی ہاں. 440 00:18:03,640 --> 00:18:07,061 >> سامعین: یہ ٹھیک ہے پہلے روک دیا گیا 16 لائن، اصل میں نہیں ہے 16 لائن پر. 441 00:18:07,061 --> 00:18:08,060 DAVID J. MALAN: بالکل. 442 00:18:08,060 --> 00:18:11,630 GDB، ڈیفالٹ کی طرف سے، روک دیا گیا ہے صرف 16 لائن سے پہلے عملدرآمد. 443 00:18:11,630 --> 00:18:14,820 تو یہ، پھانسی نہیں ہے جس کسی نامعلوم قدر کی ہے ایکس کا مطلب ہے. 444 00:18:14,820 --> 00:18:17,150 اور ہم یہ ہے کہ خوش قسمت ہے صفر کی طرح صاف کچھ. 445 00:18:17,150 --> 00:18:20,310 تو اب میں اگلے ٹائپ کریں، اب یہ 16 پھانسی. 446 00:18:20,310 --> 00:18:22,000 مجھے 17 پر عمل کرنے کے لئے یہ انتظار کر رہا ہے. 447 00:18:22,000 --> 00:18:23,400 مجھے آگے اور پرنٹ ایکس جانے دو. 448 00:18:23,400 --> 00:18:24,094 یہ ایک ہے. 449 00:18:24,094 --> 00:18:25,260 مجھے آگے اور پرنٹ Y جانے دو. 450 00:18:25,260 --> 00:18:26,176 اب مجھے کیا دیکھنا چاہئے؟ 451 00:18:26,176 --> 00:18:27,660 452 00:18:27,660 --> 00:18:28,560 >> سامعین: [اشراوی] 453 00:18:28,560 --> 00:18:29,165 >> DAVID J. MALAN: ایک زور. 454 00:18:29,165 --> 00:18:30,040 >> سامعین: [اشراوی] 455 00:18:30,040 --> 00:18:30,537 456 00:18:30,537 --> 00:18:32,120 DAVID J. MALAN: بالکل نہیں اتفاق رائے. 457 00:18:32,120 --> 00:18:34,760 تو جی ہاں، ہم نے کچھ ردی کی ٹوکری کی قیمت کو دیکھنے کے. 458 00:18:34,760 --> 00:18:37,862 اب، Y وہاں 134514064 ہے. 459 00:18:37,862 --> 00:18:39,320 ویسے، یہ صرف کچھ ردی کی ٹوکری کی قیمت ہے. 460 00:18:39,320 --> 00:18:41,350 میرا پروگرام RAM استعمال کرتا ہے مختلف مقاصد کے لئے. 461 00:18:41,350 --> 00:18:42,350 دیگر افعال ہے. 462 00:18:42,350 --> 00:18:44,040 دوسرے لوگوں کو اپنے کمپیوٹر کے اندر لکھا. 463 00:18:44,040 --> 00:18:46,789 لہذا ان بٹس کے لئے استعمال کیا گیا ہے دیگر اقدار، اور میں کیا دیکھ رہا ہوں 464 00:18:46,789 --> 00:18:49,470 کچھ کی باقیات ہے کہ میموری کے پہلے استعمال. 465 00:18:49,470 --> 00:18:53,350 >> تو کوئی بڑی بات نہیں، کیونکہ جیسے ہی میں اگلے ٹائپ کریں اور پھر Y پرنٹ کے طور پر، 466 00:18:53,350 --> 00:18:55,640 اس initialized ہے. میں چاہتا ہوں کہ قیمت. 467 00:18:55,640 --> 00:18:57,400 تو اب، کی ایک چھوٹی سی تیزی سے آگے بڑھو. 468 00:18:57,400 --> 00:18:58,540 اگلے کے لئے ن. 469 00:18:58,540 --> 00:18:59,570 اسے دوبارہ کرتے ہیں. 470 00:18:59,570 --> 00:19:00,530 اسے دوبارہ کرتے ہیں. 471 00:19:00,530 --> 00:19:02,404 لیکن مجھے مارنے کے لئے نہیں کرنا چاہتے ہیں اسے یہاں، کیونکہ میں نے تو 472 00:19:02,404 --> 00:19:05,110 اندر کیا ہو رہا ہے کو دیکھنے کے لئے چاہتے ہیں سویپ کے، حکم کیا ہے؟ 473 00:19:05,110 --> 00:19:05,520 >> سامعین: اقدامات. 474 00:19:05,520 --> 00:19:06,436 >> DAVID J. MALAN: اقدامات. 475 00:19:06,436 --> 00:19:09,800 تو یہ ایک میں مجھے اقدامات بلکہ اس سے زیادہ سے زیادہ تقریب،. 476 00:19:09,800 --> 00:19:12,270 اور اب، یہ ایک چھوٹا سا خفیہ ہے ایمانداری، لیکن یہ صرف ہے 477 00:19:12,270 --> 00:19:14,581 اب میں لائن 33 میں ہوں مجھ سے کہہ رہا. 478 00:19:14,581 --> 00:19:15,580 اور پھر اس کے کیا. 479 00:19:15,580 --> 00:19:16,080 پرنٹ عارضی. 480 00:19:16,080 --> 00:19:17,129 481 00:19:17,129 --> 00:19:20,170 ردی کی ٹوکری کی قیمت، منفی اس وقت، لیکن یہ صرف اب بھی ایک ردی کی ٹوکری کی قیمت ہے. 482 00:19:20,170 --> 00:19:22,810 تو اگلا، پرنٹ عارضی کرتے ہیں. 483 00:19:22,810 --> 00:19:27,130 یہ، 1 ہے initialized ہے جس ایک ارف X کی قدر، تھا. 484 00:19:27,130 --> 00:19:29,110 >> اب، جہاں ہمارے ایک ہیں اور سے آنے والے ایکس؟ 485 00:19:29,110 --> 00:19:32,510 ٹھیک ہے، ہم، اہم نوٹس ان اقدار X اور Y کو بلایا. 486 00:19:32,510 --> 00:19:34,740 اس کے بعد ہم مندرجہ ذیل کے طور پر ان کا تبادلہ کرنے کے لئے منظور. 487 00:19:34,740 --> 00:19:37,010 X کوما Y، سب سے پہلے آیا. 488 00:19:37,010 --> 00:19:40,020 اور پھر، سویپ ان X اور Y کہہ سکتے ہیں. 489 00:19:40,020 --> 00:19:42,630 لیکن وضاحت کے لئے، یہ ہے A اور B بلا. 490 00:19:42,630 --> 00:19:45,970 لیکن ایک اور ب اب جا رہے ہیں بالترتیب X اور Y، کی کاپیاں. 491 00:19:45,970 --> 00:19:50,660 >> میں، عارضی واپس GDB کے لئے جانا تو اب ایک ہے اور اب سے ایک ہے. 492 00:19:50,660 --> 00:19:56,130 میں اب آگے کیا اور لیکن اگر پرنٹ کرنا ایک، ایک کے دوران پہلے ہی دیا گیا ہے. 493 00:19:56,130 --> 00:20:00,030 دودھ سابق میں ڈالا گیا ہے سنتری کا رس کی گلاس، یا اس کے برعکس. 494 00:20:00,030 --> 00:20:04,750 >> اور اب اگلا پھر، اور اگر میں وویک چیک کے طور پر باہر پرنٹ، 495 00:20:04,750 --> 00:20:07,687 اب بھی دو، لیکن بی اب سے ایک ہے. 496 00:20:07,687 --> 00:20:08,770 سچ کہوں تو، یہ اب بھی ہے. 497 00:20:08,770 --> 00:20:10,670 میں کیا عارضی پرواہ نہیں ہے. 498 00:20:10,670 --> 00:20:16,850 لیکن جیسے ہی میں نے اب ٹائپ کے طور پر،، کا کہنا ہے کہ اب میں آخر میں ہوں، واپس جانے کے لئے جاری 499 00:20:16,850 --> 00:20:17,480 پروگرام. 500 00:20:17,480 --> 00:20:20,730 اور بدقسمتی سے، ایکس ہے اب بھی ایک اور Y اب بھی دو ہے. 501 00:20:20,730 --> 00:20:22,272 >> تو GDB کی افادیت کیا تھا؟ 502 00:20:22,272 --> 00:20:23,980 یہ مجھے ٹھیک کرنے میں مدد نہیں کی مسئلہ SE فی، 503 00:20:23,980 --> 00:20:26,265 لیکن یہ امید ہے کہ میری مدد احساس کی طرف سے یہ سمجھ 504 00:20:26,265 --> 00:20:30,000 کہ جی ہاں، میری منطق صحیح ہے، لیکن میرا کوڈ بالآخر نہیں ہے 505 00:20:30,000 --> 00:20:31,450 ایک مستقل اثر. 506 00:20:31,450 --> 00:20:34,570 تو ہے کہ ہم ہیں ایک مسئلہ ہے آج حل کرنے کے لئے کی جا رہی. 507 00:20:34,570 --> 00:20:37,870 >> لیکن اس کی راہ کی طرف سے حاصل ہے. 508 00:20:37,870 --> 00:20:39,230 سلک ایک جھوٹ ہے. 509 00:20:39,230 --> 00:20:41,860 یہ بھی، ایک ڈیٹا کی قسم یہ بات سی میں موجود ہے 510 00:20:41,860 --> 00:20:44,750 کچھ کے لئے ایک متبادل گیا کچھ کے لئے وقت، 511 00:20:44,750 --> 00:20:47,300 اور ہم کے طور پر مندرجہ ذیل ہے کہ ظاہر کر سکتے ہیں. 512 00:20:47,300 --> 00:20:53,282 >> مجھے آگے بڑھیں اور کھول دو پروگرام کا موازنہ 0 بلایا. 513 00:20:53,282 --> 00:20:56,240 اور یہ ایک ٹائپ کی بجائے، ہم کوڈ کے ذریعے چلنے کے لئے شروع کریں گے 514 00:20:56,240 --> 00:20:58,040 میں نے پہلے ہی لکھا ہے، لیکن یہ صرف ایک چند لائنوں کے ہے. 515 00:20:58,040 --> 00:20:59,570 تو اس کا موازنہ-0 ہے. 516 00:20:59,570 --> 00:21:02,380 اور پہلی بات میں کر رہا ہوں متن کی ایک لائن ہو رہی ہے. 517 00:21:02,380 --> 00:21:05,610 >> لیکن میں محسوس کیا پہلی بار کے لئے کام کر رہے. 518 00:21:05,610 --> 00:21:07,910 کیا واضح طور پر 21 لائن کے بارے میں مختلف کیا ہے؟ 519 00:21:07,910 --> 00:21:10,020 520 00:21:10,020 --> 00:21:11,402 اصل میں، ایک منٹ رکو. 521 00:21:11,402 --> 00:21:12,110 یہ کاپی دو ہے. 522 00:21:12,110 --> 00:21:13,568 یہاں تک کہ حق پروگرام نہیں ہے. 523 00:21:13,568 --> 00:21:14,780 ٹھیک ہے، بگاڑنے الرٹ. 524 00:21:14,780 --> 00:21:16,890 ٹھیک ہے، تو کوئی بات نہیں. 525 00:21:16,890 --> 00:21:18,520 کہ مستقبل کے سوال کا جواب ہے. 526 00:21:18,520 --> 00:21:21,450 >> یہاں 0 کا موازنہ، اور میں ہوں متن کی ایک لائن حاصل کرنے کے لئے کے بارے میں. 527 00:21:21,450 --> 00:21:22,435 پروگرام کے بہت آسان. 528 00:21:22,435 --> 00:21:23,560 تو یہ براہ راست ہے. 529 00:21:23,560 --> 00:21:28,070 یہ ایک ہفتے، ہفتہ دو چیزیں کی طرح ہے اس وقت. سٹرنگ = GetString. 530 00:21:28,070 --> 00:21:29,700 اب، میں یہاں پھر سے کہو. 531 00:21:29,700 --> 00:21:31,830 سٹرنگ T = GetString کے. 532 00:21:31,830 --> 00:21:35,300 اس میں اور اس کے بعد، آخری بات پروگرام، اس کے نام سے پتہ چلتا ہے کے طور پر، 533 00:21:35,300 --> 00:21:37,090 میں نے ان کا آپس میں موازنہ کرنے کی کوشش کرنے جا رہا ہوں. 534 00:21:37,090 --> 00:21:40,709 >> تو تو سب سے پہلے سٹرنگ، = T، تو میں ہوں برابر 535 00:21:40,709 --> 00:21:42,250 آپ ایک ہی بات ٹائپ کہنے جا رہا. 536 00:21:42,250 --> 00:21:44,291 ورنہ، میں کہنے جا رہا ہوں آپ کو مختلف چیزیں ٹائپ. 537 00:21:44,291 --> 00:21:45,880 تو مرتب اور اس پروگرام چلاتے ہیں. 538 00:21:45,880 --> 00:21:48,481 تو صفر موازنہ بنانے کے. 539 00:21:48,481 --> 00:21:48,980 اچھا لگ رہا ہے. 540 00:21:48,980 --> 00:21:50,490 کوئی تالیف غلطیاں. 541 00:21:50,490 --> 00:21:52,386 >> اب مجھے آگے بڑھو اور ./compare 0 ٹائپ. 542 00:21:52,386 --> 00:21:55,230 543 00:21:55,230 --> 00:21:59,220 مجھے آگے بڑھیں اور کچھ کا کہنا ہے کہ : Daven اور کچھ: روب. 544 00:21:59,220 --> 00:22:00,450 اور میں مختلف چیزیں ٹائپ. 545 00:22:00,450 --> 00:22:01,250 اب تک تو اچھا. 546 00:22:01,250 --> 00:22:02,680 پروگرام صحیح لگتا ہے. 547 00:22:02,680 --> 00:22:03,880 >> لیکن پھر اسے چلاتے ہیں. 548 00:22:03,880 --> 00:22:05,800 کچھ تو کہو: Gabe کی. 549 00:22:05,800 --> 00:22:07,140 کچھ تو کہو: Gabe کی. 550 00:22:07,140 --> 00:22:08,520 551 00:22:08,520 --> 00:22:09,020 ٹھیک ہے. 552 00:22:09,020 --> 00:22:10,851 شاید میں خلائی بار مارا یا funky کچھ. 553 00:22:10,851 --> 00:22:11,600 اسے دوبارہ کرتے ہیں. 554 00:22:11,600 --> 00:22:13,020 کیا Zamyla تو. 555 00:22:13,020 --> 00:22:13,970 556 00:22:13,970 --> 00:22:14,470 کیا Zamyla. 557 00:22:14,470 --> 00:22:15,740 558 00:22:15,740 --> 00:22:17,330 مختلف چیزیں. 559 00:22:17,330 --> 00:22:19,430 تو کیا ہو رہا ہے؟ 560 00:22:19,430 --> 00:22:23,200 >> تو ہم نے ان دو لائنیں کوڈ، GetString کا دو بار کہا جا رہا. 561 00:22:23,200 --> 00:22:25,760 اور پھر، میں صرف ہوں اور ٹی موازنہ کرنے کی کوشش کر. 562 00:22:25,760 --> 00:22:28,370 لیکن چل رہا ہے تو کیا واقعی؟ 563 00:22:28,370 --> 00:22:31,180 کرنے کے لئے ٹھیک ہے، میری لکھاوٹ کے بارے میں کسی حد تک اس مثال کسائ. 564 00:22:31,180 --> 00:22:34,630 اور اصل میں پھینک دو اس کو یہاں، کے طور پر بھی. 565 00:22:34,630 --> 00:22:37,390 566 00:22:37,390 --> 00:22:45,712 >> تو ہم نے ایک لائن کی طرح ہے سٹرنگ = GetString. 567 00:22:45,712 --> 00:22:48,295 تو ہے کہ صرف سب سے پہلے ہے اس پروگرام سے دلچسپ لائن. 568 00:22:48,295 --> 00:22:49,920 569 00:22:49,920 --> 00:22:52,974 لیکن اس وقت کیا گیا ہے ہڈ کے نیچے جا رہا ہے؟ 570 00:22:52,974 --> 00:22:55,890 ویسے، بائیں ہاتھ پر کی طرف سٹرنگ ہے، جو متغیر کے کچھ قسم کی ہے، 571 00:22:55,890 --> 00:22:56,785 اور اس کے نام ہے. 572 00:22:56,785 --> 00:23:00,019 تو میں اس میموری کو استعمال کرتے ہوئے کیا جاتا ہے جانتے ہیں کہ، یا RAM، کسی نہ کسی طرح میرے کمپیوٹر میں. 573 00:23:00,019 --> 00:23:02,060 تو میں نظریاتی جا رہا ہوں ایک مربع کے طور پر اس کو اپنی طرف متوجہ. 574 00:23:02,060 --> 00:23:04,820 32 بٹس، یہ پتہ چلتا ہے، لیکن مستقبل میں اس پر زیادہ. 575 00:23:04,820 --> 00:23:06,410 اور پھر، کیا یہاں ہو رہا ہے؟ 576 00:23:06,410 --> 00:23:08,700 >> ٹھیک ہے، ظاہر کر GetString صارف سے ایک تار ملتا ہے. 577 00:23:08,700 --> 00:23:11,360 اور GetString ہے کیا Zamyla یا Gabe کی یا Daven. 578 00:23:11,360 --> 00:23:14,640 تو سب سے پہلے کا انتخاب کرتے ہیں ان میں سے، Daven تھا. 579 00:23:14,640 --> 00:23:19,174 تو مؤثر طریقے سے، کیا ہے GetString ہے مجھے اس پہلی صورت میں D ایک وی ای N تھا. 580 00:23:19,174 --> 00:23:22,690 581 00:23:22,690 --> 00:23:25,045 اور پھر، اور کیا کیا اس نے مجھے چپکے سے دے؟ 582 00:23:25,045 --> 00:23:25,920 سامعین: [اشراوی] 583 00:23:25,920 --> 00:23:28,720 DAVID J. MALAN: جی ہاں، / 0 یا شہوت انگیز null کردار. 584 00:23:28,720 --> 00:23:30,550 تو یہ مؤثر طریقے سے مجھے ایک تار دیا. 585 00:23:30,550 --> 00:23:34,550 لیکن ہم پہلے ہی گزشتہ سے جانتے ایک تار ایک صف ہے کہ لگتا ہے 586 00:23:34,550 --> 00:23:37,895 حروف کی، اور اس کی طرف سے ختم کر رہا ہے اس خصوصی سینٹینل کردار، / 0. 587 00:23:37,895 --> 00:23:39,220 588 00:23:39,220 --> 00:23:42,310 >> لیکن اگر یہ سچ ہے اور یہ ایک مربع ہے، 589 00:23:42,310 --> 00:23:44,160 یہ واضح طور پر ایک بہت بڑا مستطیل ہے. 590 00:23:44,160 --> 00:23:46,830 اور یقینا، یہ ہے، میں، صرف 32 بٹس کا دعوی. 591 00:23:46,830 --> 00:23:49,500 اور یہ واضح طور پر زیادہ سے زیادہ 32 ہے بٹس، شاید یہ ہے کیونکہ 592 00:23:49,500 --> 00:23:51,583 آٹھ کے علاوہ آٹھ کے علاوہ آٹھ کے علاوہ آٹھ کے علاوہ آٹھ، 593 00:23:51,583 --> 00:23:53,320 صرف ASCII میں بائٹس کی وجہ سے. 594 00:23:53,320 --> 00:23:57,030 کس طرح heck ہم فٹ ہونے کے لئے جا رہے ہیں یہاں اس چھوٹے باکس میں Daven؟ 595 00:23:57,030 --> 00:23:59,880 >> ٹھیک ہے، اصل میں GetString کر ہے؟ 596 00:23:59,880 --> 00:24:03,680 ویسے، اس گرڈ یہاں کی نمائندگی کرتا ہے اپنے کمپیوٹر کی میموری یا رام. 597 00:24:03,680 --> 00:24:07,564 تو منمانے تو کہتے ہیں کہ ان میں سے ہر ایک، ایک بائٹ کی نمائندگی کرتا ہے 598 00:24:07,564 --> 00:24:09,730 پھر ہم میں سے ہر ایک کے بارے میں سوچ کر سکتے ہیں بائٹ ایک ایڈریس کے طور پر، 599 00:24:09,730 --> 00:24:13,830 33 آکسفورڈ سٹریٹ، یا 34 کی طرح آکسفورڈ سٹریٹ، یا 35 آکسفورڈ سٹریٹ. 600 00:24:13,830 --> 00:24:16,700 >> تو گھروں پتے کی طرح اور عمارتوں پتے، 601 00:24:16,700 --> 00:24:19,810 تو کی انفرادی بائٹس کرنا میموری پتوں یا تعداد ہے 602 00:24:19,810 --> 00:24:21,042 اس منفرد ان کی شناخت. 603 00:24:21,042 --> 00:24:22,000 اب، یہ صوابدیدی ہے. 604 00:24:22,000 --> 00:24:25,370 لیکن میں جا رہا ہوں، آسان رکھنے کے لئے صرف کنونشن کی طرف سے شش اعشاری کا استعمال، 605 00:24:25,370 --> 00:24:28,200 لیکن ایک 0x میں دیگر کچھ نہیں کا مطلب ہے کہ سے "یہ شش اعشاری ہے." 606 00:24:28,200 --> 00:24:31,030 اور میں یہ دعوی کرنے کے لئے جا رہا ہوں "D" کی یاد میں بائٹ ایک میں ختم ہو جاتی ہے. 607 00:24:31,030 --> 00:24:34,210 >> میں نے کچھ نہیں میں کیا چل رہا ہے میموری، تو Daven پہلی جگہ ہے 608 00:24:34,210 --> 00:24:35,509 بائٹ ایک میں. 609 00:24:35,509 --> 00:24:36,800 یہ، تو، 0x2 جا رہا ہے. 610 00:24:36,800 --> 00:24:37,831 611 00:24:37,831 --> 00:24:38,705 یہ 0x3 جا رہا ہے. 612 00:24:38,705 --> 00:24:39,840 613 00:24:39,840 --> 00:24:41,800 یہ 0x4 جا رہا ہے. 614 00:24:41,800 --> 00:24:43,025 یہ 0x5 جا رہا ہے. 615 00:24:43,025 --> 00:24:44,025 یہ 0x6 جا رہا ہے. 616 00:24:44,025 --> 00:24:45,560 617 00:24:45,560 --> 00:24:48,290 >> لیکن اگر آپ ایک بار سوچ شروع کیا کمپیوٹر کے کرنے کے بارے میں 618 00:24:48,290 --> 00:24:50,710 ہڈ کے نیچے، آپ اندازہ کرنے کے لئے شروع کر سکتے ہیں 619 00:24:50,710 --> 00:24:54,960 تم کس طرح، کچھ سال پہلے، گے خود C نافذ کر دیا ہے. 620 00:24:54,960 --> 00:24:58,360 شاید ہے GetString کیا ہے returning-- اس کی وجہ 621 00:24:58,360 --> 00:25:00,946 یہ نہیں ہے کی طرح لگتا ہے واپس لوٹنے Daven، SE فی، 622 00:25:00,946 --> 00:25:03,320 وہ ضرور نہیں ہے کیونکہ یہ چھوٹا سا box-- میں فٹ ہونے کے لئے 623 00:25:03,320 --> 00:25:05,090 تو کیا GetString کے شاید واپس آ رہا ہے؟ 624 00:25:05,090 --> 00:25:07,958 625 00:25:07,958 --> 00:25:08,920 >> سامعین: [اشراوی] 626 00:25:08,920 --> 00:25:10,540 >> DAVID J. MALAN: Daven کی جگہ. 627 00:25:10,540 --> 00:25:12,770 اور یہ کر رہا ہے کبھی ایک ہفتے کے بعد سے. 628 00:25:12,770 --> 00:25:16,150 کیا GetString کی واقعی ہے واپس لوٹنے کے ایک تار، SE فی نہیں ہے. 629 00:25:16,150 --> 00:25:17,780 اس چھوٹی سی سفید جھوٹ میں سے ایک ہے. 630 00:25:17,780 --> 00:25:22,520 اس کا پتہ واپس آ گیا ہے یاد میں سٹرنگ، منفرد پتہ. 631 00:25:22,520 --> 00:25:24,820 Daven 33 آکسفورڈ سٹریٹ میں رہتا ہے. 632 00:25:24,820 --> 00:25:29,310 لیکن زیادہ succinctly، گیون رہتا 0x1 میں، نمبر ایک ایڈریس. 633 00:25:29,310 --> 00:25:32,280 >> تو کیا اس میں ڈال دیا جاتا ہے چھوٹے باکس کے بعد،، واضح ہو 634 00:25:32,280 --> 00:25:35,930 کہ سٹرنگ کا پتہ ہے. 635 00:25:35,930 --> 00:25:38,110 تو اس وقت، اس ہے چل رہا. 636 00:25:38,110 --> 00:25:41,650 لیکن اس میں اشارہ کیا اب اگر یہ ہے کہ 637 00:25:41,650 --> 00:25:44,710 اس کے اندر ایک بڑی تعداد، کون ہے آپ کو روکنے کے لئے، پروگرامر، 638 00:25:44,710 --> 00:25:47,970 میں کسی نمبر ڈالنے سے کسی بھی متغیر اور صرف کود 639 00:25:47,970 --> 00:25:49,080 میموری کے اس حصہ کے لئے؟ 640 00:25:49,080 --> 00:25:51,320 اور یقینا، ہم دیکھیں گے کہ خطرہ اگلا وقت ہے. 641 00:25:51,320 --> 00:25:53,500 >> لیکن اب کے لئے، یہ ناکافی محسوس ہوتا ہے. 642 00:25:53,500 --> 00:25:55,630 اگر میں کہوں، مجھے ایک حاصل سٹرنگ، آپ مجھے Daven دے. 643 00:25:55,630 --> 00:25:57,230 لیکن اگر آپ واقعی میرے Daven نہیں دیتے. 644 00:25:57,230 --> 00:25:59,310 آپ مجھے دے تمام Daven کا پتہ ہے. 645 00:25:59,310 --> 00:26:04,310 میں تو اس بات کا یقین کے لئے جانتے ہیں کس طرح جہاں Daven شروع ہوتا ہے اور ends-- 646 00:26:04,310 --> 00:26:07,140 کہانی weird-- رہی Daven شروع ہوتا ہے اور کہاں ختم ہوتی ہے، 647 00:26:07,140 --> 00:26:10,435 اور، پھر اگلے یاد میں سٹرنگ شروع ہوتا ہے؟ 648 00:26:10,435 --> 00:26:11,520 649 00:26:11,520 --> 00:26:13,620 >> ویسے، آپ کو حوالے کر رہے ہیں مجھے Daven کے آغاز، 650 00:26:13,620 --> 00:26:17,230 بنیادی طور پر، کس طرح جانتے ہیں اس کے نام کے آخر کہاں ہے؟ 651 00:26:17,230 --> 00:26:20,550 اس خصوصی شہوت انگیز null کردار، جس سب سے زیادہ اہم ہے 652 00:26:20,550 --> 00:26:23,040 نیچے ڈور تو ڈاکو صرف نشاندہی کر رہے ہیں 653 00:26:23,040 --> 00:26:25,820 منفرد کی یاد میں ان کی جگہ کی طرف سے. 654 00:26:25,820 --> 00:26:28,130 تو اس وقت، کہ ہے کیا چل رہا ہے. 655 00:26:28,130 --> 00:26:32,470 >> تو اب ہم پر نظر آتے ہیں یہاں کوڈ، کی وضاحت 656 00:26:32,470 --> 00:26:35,790 آپ 26 سطر میں بگ گے تو. 657 00:26:35,790 --> 00:26:39,560 کیوں کیا Zamyla اور کیا Zamyla مختلف ہے؟ 658 00:26:39,560 --> 00:26:41,330 کیوں Gabe اور Gabe کی مختلف ہے؟ 659 00:26:41,330 --> 00:26:42,154 جی ہاں، میں واپس. 660 00:26:42,154 --> 00:26:43,390 >> سامعین: انہوں نے مختلف پتے. 661 00:26:43,390 --> 00:26:45,931 >> DAVID J. MALAN: بس کیونکہ وہ مختلف پتے. 662 00:26:45,931 --> 00:26:48,820 آپ GetString فون کیونکہ جب پھر، میں یہاں فوری طور پر کریں گے جس میں، 663 00:26:48,820 --> 00:26:52,870 اس دوسری لائن، تار ہے تو T، میں نے اس پروگرام میں کیا تھا کے طور پر، 664 00:26:52,870 --> 00:26:55,030 GetString کے لئے ایک اور کال کے برابر ہے. 665 00:26:55,030 --> 00:26:56,370 666 00:26:56,370 --> 00:26:58,670 میں فون اگلی بار GetString کے، میں جا رہا ہوں 667 00:26:58,670 --> 00:27:00,190 میموری کا ایک مختلف حصہ حاصل کرنے کے لئے. 668 00:27:00,190 --> 00:27:02,220 >> GetString کی اجازت ہے آپریٹنگ پوچھنا 669 00:27:02,220 --> 00:27:03,800 زیادہ سے زیادہ میموری کے لئے نظام. 670 00:27:03,800 --> 00:27:07,894 یہ وہی دوبارہ استعمال کرنے کے لئے نہیں جا رہا ہے چھ بائٹس ہر ایک وقت. 671 00:27:07,894 --> 00:27:09,810 یہ ایک نئے حاصل کرنے کے لئے جا رہا ہے میموری کا حصہ، جس 672 00:27:09,810 --> 00:27:12,780 ٹی حاصل کرنے کے لئے کی جا رہی ہے کا مطلب ہے کہ یہاں کچھ دوسرے قدر. 673 00:27:12,780 --> 00:27:15,380 >> تو جب مجھے کیا S = برابر T، آپ کا موازنہ نہیں کر رہے ہیں 674 00:27:15,380 --> 00:27:17,880 یہ اور ایک خلاف D اس کے اور اس کے خلاف وی. 675 00:27:17,880 --> 00:27:19,588 آپ اس کا موازنہ کر رہے ہیں ، جس میں اس کے خلاف 676 00:27:19,588 --> 00:27:24,020 واضح طور سے خوبصورت useful-- useless-- ہے ، بہت بیکار ہے واقعی جو وجہ 677 00:27:24,020 --> 00:27:25,830 ڈور میموری میں ہیں جہاں پرواہ ہے؟ 678 00:27:25,830 --> 00:27:26,850 >> اور یقینا، ہم نہیں ہے. 679 00:27:26,850 --> 00:27:28,980 اور ہم نہیں جا رہے ہیں خاص طور پر دیکھ بھال شروع. 680 00:27:28,980 --> 00:27:34,180 صرف کیڑے پیدا کر سکتے ہیں اس حد تک کہ اور سلامتی کے خطرات مرضی پیدا کر سکتے ہیں 681 00:27:34,180 --> 00:27:36,100 ہم اصل میں اس کے بارے میں پرواہ کرنے کے لئے شروع. 682 00:27:36,100 --> 00:27:37,230 تو اس مسئلہ کو حل کریں. 683 00:27:37,230 --> 00:27:39,650 آپ کو سپر بس اس کو ٹھیک، باہر کر دیتا ہے. 684 00:27:39,650 --> 00:27:42,600 >> اور میں نے پہلے، اصل میں چلو پھر پتہ چلتا ہے کہ، کیا کرے گا 685 00:27:42,600 --> 00:27:47,170 ایک CS50 کی کلاس میں ہیں تو آپ کو، ایسا اور آپ کو لاگو کرنے کے لئے تھا 686 00:27:47,170 --> 00:27:48,600 دو ڈور کے خلاف ایک کے مقابلے. 687 00:27:48,600 --> 00:27:51,440 آپ واضح طور پر صرف S = T برابر استعمال نہیں کر سکتے. 688 00:27:51,440 --> 00:27:54,090 لیکن صرف منطقی طور پر، کس طرح آپ اس سٹرنگ کا موازنہ کریں گے 689 00:27:54,090 --> 00:27:56,370 C کوڈ کا استعمال کرتے ہوئے اس جملے کے خلاف؟ 690 00:27:56,370 --> 00:27:56,880 جی ہاں. 691 00:27:56,880 --> 00:27:58,780 >> سامعین: صرف کرتے لوپ کے لئے [اشراوی] 692 00:27:58,780 --> 00:28:00,670 693 00:28:00,670 --> 00:28:01,670 DAVID J. MALAN: کامل. 694 00:28:01,670 --> 00:28:02,900 سامعین: [اشراوی] 695 00:28:02,900 --> 00:28:03,310 DAVID J. MALAN: جی ہاں. 696 00:28:03,310 --> 00:28:05,390 صرف لوپ یا ایک کے لئے ایک کا استعمال کرتے ہیں لوپ یا جو کچھ بھی ہے. 697 00:28:05,390 --> 00:28:08,710 لیکن بنیادی خیال کا اطلاق ہوتا ہے کہ اس میموری یا ایک سرنی کے ایک حصہ ہے 698 00:28:08,710 --> 00:28:11,590 اور یہ ہے، پر iterate دونوں ایک ہی وقت میں. 699 00:28:11,590 --> 00:28:12,960 اور صرف حروف کا آپس میں موازنہ. 700 00:28:12,960 --> 00:28:14,260 >> اور تم بھی ایک ہو جائے کرنے کے لئے ہے تھوڑا محتاط، آپ کی وجہ سے 701 00:28:14,260 --> 00:28:16,247 ایک انگلی نہیں چاہتے دیگر ماضی جانے کے لئے 702 00:28:16,247 --> 00:28:18,080 ایک تار ہے دوسرے سے زیادہ. 703 00:28:18,080 --> 00:28:21,380 تو آپ کے لئے چیک کرنے کے لئے چاہتے ہیں کے لئے جا رہے ہیں آخر میں اس خصوصی قیمت، شہوت انگیز null. 704 00:28:21,380 --> 00:28:24,017 لیکن یہ واقعی میں، ہے آخر، اس کے طور پر کے طور پر آسان. 705 00:28:24,017 --> 00:28:26,100 اور واضح طور سے، ہم نے کی ضرورت نہیں کہ وہیل reinvent کرنے کے لئے. 706 00:28:26,100 --> 00:28:27,960 یہاں دو ورژن ہے. 707 00:28:27,960 --> 00:28:32,910 اور کیا میں یہاں کہنے جا رہا ہوں یہ ہے کہ بجائے کے موازنہ کے، = T برابر 708 00:28:32,910 --> 00:28:38,964 اگر سٹرنگ میں بجائے، کہنے جا رہا ہوں کی کوما ٹی کے مقابلے = 0 کے برابر ہے. 709 00:28:38,964 --> 00:28:40,130 اب، تار آپس میں موازنہ کیا جاتا ہے؟ 710 00:28:40,130 --> 00:28:43,046 >> یہ ایک تقریب ہے، پتہ چلا ہے کہ جس کا مقصد زندگی میں C، کے ساتھ آتا ہے 711 00:28:43,046 --> 00:28:44,650 دو ڈور کا موازنہ کرنے ہے. 712 00:28:44,650 --> 00:28:48,300 ہم پڑھتے ہیں اور اگر موازنہ ہلچل اس مرد صفحہ یا دستاویزات یا CS50 713 00:28:48,300 --> 00:28:50,630 حوالہ، یہ بس آپ کو اس ہلچل بتا 714 00:28:50,630 --> 00:28:55,730 ایک منفی یا تو واپسی کا موازنہ نمبر یا ایک مثبت عدد یا صفر، 715 00:28:55,730 --> 00:28:57,660 صفر کا مطلب ہے جہاں وہ برابر ہیں. 716 00:28:57,660 --> 00:28:58,570 >> تو صرف اٹکل. 717 00:28:58,570 --> 00:29:00,390 یہ کیا ہے تو مطلب ہو سکتا ہے موازنہ کی واپسی ہلچل 718 00:29:00,390 --> 00:29:02,110 منفی قدر یا مثبت قیمت؟ 719 00:29:02,110 --> 00:29:02,785 720 00:29:02,785 --> 00:29:04,285 سامعین: سے زیادہ یا کم سے کم. 721 00:29:04,285 --> 00:29:05,570 DAVID J. MALAN: جی ہاں، یا اس سے زیادہ کے مقابلے میں کم. 722 00:29:05,570 --> 00:29:08,640 تو آپ کو ایک مکمل حل کرنا چاہتا تھا ایک dictionary-- میں تاروں کی گچرچھا 723 00:29:08,640 --> 00:29:12,975 ہم آخر road-- نیچے کے طور پر کامل تقریب ممکنہ طور پر استعمال کرنے کے لئے، 724 00:29:12,975 --> 00:29:15,850 یہ ہے کہ کیا جا رہا ہے کیونکہ آپ کے لئے ڈور کا موازنہ، اور بتا 725 00:29:15,850 --> 00:29:20,060 آپ کو ایک ب سے پہلے آتا ہے، یا کرتا ہے B ایک حروف تہجی سے پہلے آئے. 726 00:29:20,060 --> 00:29:21,490 ہم بالکل ایسا کر سکتے ہیں. 727 00:29:21,490 --> 00:29:23,620 >> اور میں ایک دوسرے کیا نوٹس اس مثال میں بات. 728 00:29:23,620 --> 00:29:26,870 اور کیا اس سے زیادہ تبدیل کر دیا گیا اس کی اہم تقریب میں؟ 729 00:29:26,870 --> 00:29:28,500 730 00:29:28,500 --> 00:29:29,350 چار *. 731 00:29:29,350 --> 00:29:31,150 اور یہ کہ دوسرے سفید جھوٹ ہے. 732 00:29:31,150 --> 00:29:33,750 اس وقت، جب آپ نے سٹرنگ لکھ رہا، 733 00:29:33,750 --> 00:29:38,350 ہم چپکے سے دوبارہ لکھ دیا گیا ہے چار کے طور پر سٹرنگ * تو اصل میں ہے کہ بجنا 734 00:29:38,350 --> 00:29:39,270 آپ سمجھتے ہیں. 735 00:29:39,270 --> 00:29:42,450 >> دوسرے الفاظ میں، cs50.h، میں میں اور ہم آخر میں دیکھیں گے کے طور پر، 736 00:29:42,450 --> 00:29:45,950 ہم ایک متبادل کہا جاتا سٹرنگ بنا اس چار * کے طور پر ایک ہی بات ہے. 737 00:29:45,950 --> 00:29:49,910 اور اب کے لئے، صرف معلوم ہے کہ *، اس تناظر میں، کم از کم، 738 00:29:49,910 --> 00:29:51,286 ایڈریس کا مطلب ہے. 739 00:29:51,286 --> 00:29:52,210 >> کیا پتہ؟ 740 00:29:52,210 --> 00:29:56,390 ویسے، حقیقت یہ ہے کہ میں نے کہا کہ چار *، اور، * int یا فلوٹ نہیں * 741 00:29:56,390 --> 00:30:00,820 چار * کا مطلب ہے کہ ایک چار کا پتہ. 742 00:30:00,820 --> 00:30:06,770 تو یہاں اس چھوٹے باکس، ارف سٹرنگ، واقعی قسم چار * کی ہے، 743 00:30:06,770 --> 00:30:10,490 جس کہہ صرف پسند ہیں طریقہ ہے، اس خانے میں ایک ایڈریس جائیں گے. 744 00:30:10,490 --> 00:30:12,430 اور کیا ہے کہ ایڈریس کے رجوع کرتا ہے؟ 745 00:30:12,430 --> 00:30:13,780 ظاہر ہے، ایک چار. 746 00:30:13,780 --> 00:30:16,410 >> لیکن ہم بالکل کر سکتے ہیں INT * اور دیگر چیزیں ہیں. 747 00:30:16,410 --> 00:30:20,790 لیکن اب کے لئے، چار * واقعی سب سے زیادہ ہے براہ راست اور دلچسپی میں سے ایک. 748 00:30:20,790 --> 00:30:23,310 تو اس مسئلہ کی جا رہی ہے پھر، اگرچہ، اضافہ کرنے کے لئے. 749 00:30:23,310 --> 00:30:24,830 >> میں اس پروگرام کو کھولنے کے فرض. 750 00:30:24,830 --> 00:30:27,670 اب ہم پیشن گوئی کر سکتے ہیں تو چلو دیکھتے ہیں کیا اس کوڈ سے غلط ہے. 751 00:30:27,670 --> 00:30:31,140 تو اس پروگرام میں، کاپی 0، میں ہوں آگے بڑھو اور پھر فون کرنے جا رہا 752 00:30:31,140 --> 00:30:34,190 GetString اور کی میں قدر ذخیرہ. 753 00:30:34,190 --> 00:30:38,800 >> اور پھر، میں کیوں، یہ کر رہا ہوں صرف ہفتے ماضی سے ایک یاد دہانی کے طور پر؟ 754 00:30:38,800 --> 00:30:40,960 ہم کہ GetString کا کہنا ہے کہ کیا ہے کبھی کبھی شہوت انگیز null واپس. 755 00:30:40,960 --> 00:30:42,793 یہ کیا ہے تو کیا مطلب ہے GetString کی شہوت انگیز null واپس؟ 756 00:30:42,793 --> 00:30:45,040 757 00:30:45,040 --> 00:30:46,034 کچھ غلط ہو گیا. 758 00:30:46,034 --> 00:30:48,950 شاید یہ تار بھی ہے کا مطلب ہے کہ بڑا، میموری کے کمپیوٹر کے باہر. 759 00:30:48,950 --> 00:30:51,724 یہ سپر، سپر، سپر ہوتا ہے شاذ و نادر ہی، لیکن یہ ہو سکتا ہے. 760 00:30:51,724 --> 00:30:53,890 ہم اس کے لئے چیک کرنے کے لئے چاہتے ہیں، اور یہ کہ ہم سب کر رہے ہیں ہے. 761 00:30:53,890 --> 00:30:57,910 >> آپ ایسا نہیں کرتے ہیں تو ہم، اب دیکھیں گے کیونکہ چیزوں کے لئے عادت کی جانچ پڑتال شروع 762 00:30:57,910 --> 00:31:00,870 شہوت انگیز null کی طرح، آپ کو ہو سکتا ہے اصل میں جانے کے لئے شروع 763 00:31:00,870 --> 00:31:03,106 یاد میں پتوں پر غلط ہیں. 764 00:31:03,106 --> 00:31:05,980 اور تم inducing کے شروع کرنے کے لئے جا رہے ہیں زیادہ سے زیادہ انقطاع گناہ. 765 00:31:05,980 --> 00:31:08,360 یا ایک میک یا PC، صرف ایک کمپیوٹر کی وجہ سے پھانسی 766 00:31:08,360 --> 00:31:10,340 یا ایک پروگرام ممکنہ طور پر، منجمد کرنے کے لئے. 767 00:31:10,340 --> 00:31:14,930 >> تو اب، میں، کاپی 0.c میں دعوی میں اس راہ کی طرف سے ان ڈور کاپی کرنے کے لئے جا رہا ہوں 768 00:31:14,930 --> 00:31:15,685 28 لائن. 769 00:31:15,685 --> 00:31:16,850 770 00:31:16,850 --> 00:31:18,750 اور پھر، میں جا رہا ہوں نچلے حصے میں دعوی کرنے کے لئے 771 00:31:18,750 --> 00:31:21,430 یہاں میں جا رہا ہوں ان میں سے ایک کو تبدیل کرنے کی. 772 00:31:21,430 --> 00:31:22,330 >> تو یہ محسوس. 773 00:31:22,330 --> 00:31:24,370 میں نے اپنے پرانے دوست strlen بلا رہا ہوں. 774 00:31:24,370 --> 00:31:28,960 اور صرف انگریزی میں وضاحت اس لائن 34 کیا کر رہی ہے؟ 775 00:31:28,960 --> 00:31:32,480 کیا ٹی 0 بریکٹ کرتا ہے بائیں پر نمائندگی. 776 00:31:32,480 --> 00:31:32,980 جی ہاں. 777 00:31:32,980 --> 00:31:34,339 >> سامعین: T کے پہلے کردار؟ 778 00:31:34,339 --> 00:31:35,880 DAVID J. MALAN: T کے پہلے کردار. 779 00:31:35,880 --> 00:31:36,379 کہ یہ ہے. 780 00:31:36,379 --> 00:31:40,024 T کے پہلے کردار، میں چاہتا ہوں بڑے ورژن تفویض کرنے کے لئے 781 00:31:40,024 --> 00:31:41,190 ٹی میں پہلی کردار کی. 782 00:31:41,190 --> 00:31:43,200 تو یہ فائدہ ہے پہلا خط. 783 00:31:43,200 --> 00:31:46,340 اور پھر، بہت آخری چیز جو میں کرنا اس پروگرام میں ہے میں یہاں کے دعوے 784 00:31:46,340 --> 00:31:50,340 اصل، ہے، اور یہاں کاپی، ٹی. 785 00:31:50,340 --> 00:31:54,610 >> لیکن اس کی کہانی کی بنیاد پر ہم صرف ، ڈور واقعی ہیں کے بارے میں بتایا 786 00:31:54,610 --> 00:31:57,520 واقعی لائن 28 ہے کر، اور کیا ہے 787 00:31:57,520 --> 00:31:59,405 جا کے نتیجے میں بگ سکرین پر ہو؟ 788 00:31:59,405 --> 00:32:01,300 789 00:32:01,300 --> 00:32:03,500 >> تو سب سے پہلے، سب سے پہلے سوال، 28. 790 00:32:03,500 --> 00:32:09,040 سٹرنگ T = کی واقعی کیا کر رہا ہے؟ 791 00:32:09,040 --> 00:32:16,430 ہم بائیں ہاتھ پر ہے تو یہاں طرف سٹرنگ T = ے؛ 792 00:32:16,430 --> 00:32:19,400 کہ مجھے ایک باکس دیتا ہے یہاں اور ایک باکس یہاں. 793 00:32:19,400 --> 00:32:25,530 اور، اس ایڈریس 0x کے ہے لگتا ہے چلو منمانے، اس وقت، کا کہنا ہے کہ 50 دو. 794 00:32:25,530 --> 00:32:28,847 کیا سٹرنگ T = کی کرتا ہے ہڈ کے نیچے ہیں؟ 795 00:32:28,847 --> 00:32:30,340 >> سامعین: [اشراوی] 796 00:32:30,340 --> 00:32:34,100 >> DAVID J. MALAN: یہ میموری اسٹورز وہاں سے نمٹنے کے، تو 0x50 وہاں جاتا ہے. 797 00:32:34,100 --> 00:32:37,980 اب تو، میں سب سے پہلے کرنے کے لئے جانا T میں کردار اور اس کے بڑے، 798 00:32:37,980 --> 00:32:39,535 میں مؤثر طریقے سے کے لئے کیا کر رہا ہوں؟ 799 00:32:39,535 --> 00:32:41,300 800 00:32:41,300 --> 00:32:43,450 میں واقعی میں حق، ایک ہی بات کر رہا ہوں؟ 801 00:32:43,450 --> 00:32:47,680 کیونکہ اگر ایڈریس 0x50-- اور صرف، میں یہاں بورڈ پر زیادہ کمرے نہیں ہے، 802 00:32:47,680 --> 00:32:51,750 لیکن، اس کے یہاں 0x50 ہے کہ فرض اپنے کمپیوٹر کی میموری میں کہیں. 803 00:32:51,750 --> 00:32:55,825 >> اور میں، مثال کے طور پر، کے بغیر ہے اس طرح، یہاں چھوٹے. 804 00:32:55,825 --> 00:32:57,120 805 00:32:57,120 --> 00:33:01,980 اور میں نے کہا کہ ٹی بریکٹ 0 بڑا ہو جاتا ہے. 806 00:33:01,980 --> 00:33:04,860 ویسے، T بریکٹ 0 ہے T میں پہلا حرف. 807 00:33:04,860 --> 00:33:07,840 تو تھوڑا جی جا رہا ہے بن بڑی جی لیکن مسئلہ 808 00:33:07,840 --> 00:33:09,410 ، کیا بھی کی طرف اشارہ ہے کرتا ہے؟ 809 00:33:09,410 --> 00:33:10,300 >> سامعین: ہی. 810 00:33:10,300 --> 00:33:11,841 >> DAVID J. MALAN: ایک ہی عین مطابق بات. 811 00:33:11,841 --> 00:33:16,342 تو شاید ایک سادہ وضاحت، نحو ایک چھوٹا سا عجیب ہے یہاں تک کہ اگر. 812 00:33:16,342 --> 00:33:17,050 تو ایسا کرنے دو. 813 00:33:17,050 --> 00:33:20,210 ./copy 0 پھر کاپی 0 بنائیں اور. 814 00:33:20,210 --> 00:33:21,820 815 00:33:21,820 --> 00:33:24,110 کچھ تو کہو: Gabe کی. 816 00:33:24,110 --> 00:33:26,760 اور بدقسمتی سے، دونوں انہیں اب بڑا کیا گیا ہے، 817 00:33:26,760 --> 00:33:29,500 لیکن اس کے لئے بنیادی ہم صرف ہو اس کی وجہ سے 818 00:33:29,500 --> 00:33:32,350 اب پتے کے ساتھ نمٹنے کے. 819 00:33:32,350 --> 00:33:36,470 >> تو ہم کس طرح شروع کرنے کے لئے ہے ایڈریس کوئی شلیش intended-- 820 00:33:36,470 --> 00:33:39,270 ہم سے نمٹنے کے لئے شروع کرتے ہیں کس طرح یہ خاص طور پر مسئلہ ہے؟ 821 00:33:39,270 --> 00:33:44,400 ویسے، copy1.c میں، چیزوں کو جا رہے ہیں ایک چھوٹا سا زیادہ پیچیدہ حاصل کرنے کے لئے. 822 00:33:44,400 --> 00:33:49,310 لیکن میں نے ایک دعوی کرے گا تصوراتی آسان حل. 823 00:33:49,310 --> 00:33:50,852 >> پہلی نظر میں حاصل کرنے کے لئے مشکل. 824 00:33:50,852 --> 00:33:53,560 سب سے پہلے کے لئے آسان نہیں جا رہا وقت آپ، شاید، اس سے ٹائپ 825 00:33:53,560 --> 00:33:57,440 لیکن مسئلہ یہ ہے کہ اگر بس T = صرف کر 826 00:33:57,440 --> 00:33:59,694 نقول پتہ، کیا، پھر میں تم پر منتخب کر سکتے ہیں تو، 827 00:33:59,694 --> 00:34:02,110 حل ہونے جا رہا ہے اصل میں ایک تار کاپی کرنے کے لئے؟ 828 00:34:02,110 --> 00:34:04,906 829 00:34:04,906 --> 00:34:06,770 >> سامعین: ہم شاید گے پھر ایک لوپ استعمال. 830 00:34:06,770 --> 00:34:06,890 >> DAVID J. MALAN: جی ہاں. 831 00:34:06,890 --> 00:34:08,390 تو ہم پھر ایک لوپ کی ضرورت کے لئے جا رہے ہیں. 832 00:34:08,390 --> 00:34:11,800 اور ہم کاپی کرنا چاہتے ہیں کیونکہ اگر ایک سٹرنگ میں ایک سٹرنگ، 833 00:34:11,800 --> 00:34:14,120 ہم شاید ایسا کرنے کے لئے چاہتے ہیں کردار سے کردار. 834 00:34:14,120 --> 00:34:17,199 لیکن مسئلہ یہ ہے، تو ہے اس، اصل میں کی ہے 835 00:34:17,199 --> 00:34:22,159 اب ہم واضح طور پر شروع کرنے کی ضرورت T کے لئے میموری مختص. 836 00:34:22,159 --> 00:34:24,320 >> دوسرے الفاظ میں، چلو یہ ایک آخری بار redraw. 837 00:34:24,320 --> 00:34:28,659 اس کے سٹرنگ = GetString ہے. 838 00:34:28,659 --> 00:34:30,956 839 00:34:30,956 --> 00:34:32,455 اور کے طور پر اچھی طرح سے، یہاں یہ ڈال دو. 840 00:34:32,455 --> 00:34:36,639 841 00:34:36,639 --> 00:34:37,420 اس GetString ہے. 842 00:34:37,420 --> 00:34:39,070 843 00:34:39,070 --> 00:34:43,860 کچھ کے لئے اور اس کے بعد، تصویر اس طرح کے طور پر اس سے پہلے ہونے جا رہا ہے، 844 00:34:43,860 --> 00:34:44,360 جی ایک بی ای / 0. 845 00:34:44,360 --> 00:34:47,294 846 00:34:47,294 --> 00:34:48,960 کہ اس طرح کچھ لگتا. 847 00:34:48,960 --> 00:34:53,650 اور کی وجہ سے، ہم اس 0x50 فون اور یہ کہ 51، 52 جا رہا ہے. 848 00:34:53,650 --> 00:34:54,409 >> تو اس 0x50 ہے. 849 00:34:54,409 --> 00:34:55,679 850 00:34:55,679 --> 00:34:59,690 اور پھر، میں سٹرنگ ٹی کرتے. 851 00:34:59,690 --> 00:35:02,450 یاد میں، یہ صرف جا رہا ہے مجھے اس طرح ایک چھوٹا سا مربع دے. 852 00:35:02,450 --> 00:35:04,080 تو اہم قدم اب کیا ہے؟ 853 00:35:04,080 --> 00:35:09,870 میں T میں کی کاپی کرنے کے لئے چاہتے ہیں، تو کیا خالی ہم یہاں میں بھرنے کے لئے کی ضرورت ہے؟ 854 00:35:09,870 --> 00:35:12,050 یا ہم کرنے کی ضرورت ہے ایک اعلی سطح پر ہے؟ 855 00:35:12,050 --> 00:35:14,101 856 00:35:14,101 --> 00:35:14,600 جی ہاں؟ 857 00:35:14,600 --> 00:35:16,200 858 00:35:16,200 --> 00:35:17,020 کوئی؟ 859 00:35:17,020 --> 00:35:17,690 جی ہاں. 860 00:35:17,690 --> 00:35:19,214 >> سامعین: ہم [اشراوی] کرنے کی ضرورت ہے. 861 00:35:19,214 --> 00:35:21,380 DAVID J. MALAN: جی ہاں، ہم اس خالی میں بھرنے کے لئے کی ضرورت ہے. 862 00:35:21,380 --> 00:35:24,340 میں نے تو کاپی اور نہیں کر سکتے ہیں Gabe کی کا نام فائدہ 863 00:35:24,340 --> 00:35:28,120 میں آپریٹنگ سسٹم سے پوچھنا جب تک میموری کا ایک حصہ کے لئے 864 00:35:28,120 --> 00:35:30,640 کہ اصل کے طور پر کم از کم کے طور پر بڑا ہے. 865 00:35:30,640 --> 00:35:32,130 تو ہے کہ ایک سوال کے ساتھ ہمیں چھوڑ دیتا ہے. 866 00:35:32,130 --> 00:35:36,080 >> میں آپریٹنگ سسٹم نہیں پوچھنا کیسے صرف ایک سادہ سی پوائنٹر کے لئے 867 00:35:36,080 --> 00:35:38,530 یہ کہا جاتا ہے کے طور پر، ایک پتہ، ایک پوائنٹر نہیں 868 00:35:38,530 --> 00:35:40,980 ایک سادہ سی کے باکس کے لئے اس طرح ایک تار بلایا؟ 869 00:35:40,980 --> 00:35:44,200 میں کس طرح آپریٹنگ پوچھ رہے ہو میموری کا ایک بڑا حصہ کے لئے نظام؟ 870 00:35:44,200 --> 00:35:48,430 اس طرح اب تک، میں صرف واپس ہو گیا ہے بالواسطہ طور پر GetString بلا کی طرف سے. 871 00:35:48,430 --> 00:35:50,740 تو کس طرح GetString ہے اس کی میموری حاصل کرنے سے بھی؟ 872 00:35:50,740 --> 00:35:53,430 >> ٹھیک ہے، یہ ہے کہ باہر کر دیتا ہے یہ دوسری تقریب 873 00:35:53,430 --> 00:35:55,160 کہ اب ہم استعمال کرنے کے لئے شروع کریں گے. 874 00:35:55,160 --> 00:35:59,780 اب، اس طرح زیادہ خفیہ than-- لگتا ہے اور ہوں اس کو دیکھ سکتے ہیں جو صرف ایک ہی ہوں 875 00:35:59,780 --> 00:36:03,150 اس لائن طریقہ زیادہ خفیہ لگ رہا ہے تو یہ پہلی نظر میں ہونا چاہئے. 876 00:36:03,150 --> 00:36:04,650 لیکن اس کے علاوہ چڑھاو ہیں. 877 00:36:04,650 --> 00:36:07,950 >> بائیں ہاتھ پر، میں چار * T ہے. 878 00:36:07,950 --> 00:36:13,280 انگریزی میں تو، تیار کرنے کے لئے شروع کرتے ہیں تکنیکی شبدجال میں مناسب سزائیں. 879 00:36:13,280 --> 00:36:19,757 تو اس مختص ہے قسم چار متغیر T بلایا *. 880 00:36:19,757 --> 00:36:21,090 اب، کیا یہ واقعی مطلب ہے؟ 881 00:36:21,090 --> 00:36:23,881 >> ویسے، کا مطلب ہے کہ، میں کیا جا رہا ہوں T نامی اس متغیر میں ڈال دیا؟ 882 00:36:23,881 --> 00:36:24,780 883 00:36:24,780 --> 00:36:26,402 ایک حروف کے ایک پتے. 884 00:36:26,402 --> 00:36:28,360 تو ہے کہ، صرف آسان ہے زیادہ مناسب طریقہ 885 00:36:28,360 --> 00:36:29,930 کے بائیں ہاتھ کی طرف بیان. 886 00:36:29,930 --> 00:36:32,890 تو ہے کہ یہاں صرف اس باکس تخلیق کرتا ہے. 887 00:36:32,890 --> 00:36:34,760 تو دائیں ہاتھ کی طرف، شاید، جا رہا ہے 888 00:36:34,760 --> 00:36:37,170 بڑی کہ مختص کرنے کی میموری کے لئے کس طرح حصہ؟ 889 00:36:37,170 --> 00:36:38,340 تو اس کے علاوہ چڑھاو ہیں. 890 00:36:38,340 --> 00:36:41,131 >> یہ پہلی نظر میں بھاری ہے لیکن اندر یہاں کیا ہو رہا ہے؟ 891 00:36:41,131 --> 00:36:43,740 سب سے پہلے، کی malloc، وہاں جس ہمارے نئے دوست، بظاہر ہے 892 00:36:43,740 --> 00:36:45,450 "میموری مختص." 893 00:36:45,450 --> 00:36:49,560 تو یہ منظور کیا جا رہا دلیل ہے اس میں، تو یہ ایک بہت بڑی دلیل ہے. 894 00:36:49,560 --> 00:36:50,970 تو اس کے علاوہ چڑھاو ہیں. 895 00:36:50,970 --> 00:36:53,410 >> کے کی strlen، کورس کی، کی نمائندگی کرتا ہے the-- 896 00:36:53,410 --> 00:36:54,142 897 00:36:54,142 --> 00:36:55,600 سامعین: حروف کی تعداد. 898 00:36:55,600 --> 00:36:56,710 DAVID J. MALAN: بس ایس حروف کی تعداد. 899 00:36:56,710 --> 00:36:59,040 تو کے کی لمبائی، اصل سٹرنگ. 900 00:36:59,040 --> 00:37:00,350 تو جی ایک بی ای. 901 00:37:00,350 --> 00:37:02,320 تو یہ شاید چار اس صورت میں ہے. 902 00:37:02,320 --> 00:37:05,485 کیوں میں نے بعد +1 کر رہا ہوں کے کی strlen بلا؟ 903 00:37:05,485 --> 00:37:06,360 سامعین: [اشراوی] 904 00:37:06,360 --> 00:37:07,590 DAVID J. MALAN: اس کے لئے خصوصی شہوت انگیز null کردار. 905 00:37:07,590 --> 00:37:11,260 آپ مجھ سے پوچھیں تو کی لمبائی کیا ہے Gabe کی کے نام، میں چار کا کہنا ہے کہ جا رہا ہوں. 906 00:37:11,260 --> 00:37:14,480 ہڈ کے نیچے، اگرچہ، مجھے اس کی ضرورت شہوت انگیز null کردار کے لئے کہ پانچویں بائٹ. 907 00:37:14,480 --> 00:37:16,100 میں +1 کر رہا ہوں یہی وجہ ہے کہ. 908 00:37:16,100 --> 00:37:21,730 >> اب صرف اس صورت میں آپ کو اس چل رہے ہیں کے علاوہ کسی اور کمپیوٹر پر پروگرام،، کا کہنا ہے کہ 909 00:37:21,730 --> 00:37:24,610 CS50 آلات، جہاں ایک چار کا سائز 910 00:37:24,610 --> 00:37:26,350 مختلف ہو سکتا ہے میرے اپنے کمپیوٹر سے 911 00:37:26,350 --> 00:37:30,590 میں نے اس کو فون کر سکتے ہیں پتہ چلا ہے کہ آپریٹر کو sizeof، صرف، کمپیوٹر سے پوچھنا 912 00:37:30,590 --> 00:37:32,870 ایک کا سائز کیا ہے اس کمپیوٹر پر چار؟ 913 00:37:32,870 --> 00:37:37,400 >> اور اس میں پانچ ضرب کی طرف سے چار کا سائز، کی طرف سے مثال کے طور پر، جس میں 914 00:37:37,400 --> 00:37:40,440 سب سے زیادہ کمپیوٹر پر کرے گا صرف ایک، malloc کے ہو 915 00:37:40,440 --> 00:37:44,830 مجھے اس بڑے کے لئے مختص کی جا رہی ہے یہاں پر زیادہ میموری کا حصہ. 916 00:37:44,830 --> 00:37:47,140 اور اس کو واپس جا رہا ہے یہ ہے تو یہ ایک تقریب ہے 917 00:37:47,140 --> 00:37:48,265 کیا مجھ سے واپس جا رہا؟ 918 00:37:48,265 --> 00:37:50,914 919 00:37:50,914 --> 00:37:51,830 سامعین: پتہ؟ 920 00:37:51,830 --> 00:37:53,709 DAVID J. MALAN: کیا پتہ؟ 921 00:37:53,709 --> 00:37:55,250 سامعین: میموری کی اس رقم مختص کی؟ 922 00:37:55,250 --> 00:37:56,450 DAVID J. MALAN: کی یاد داشت اس مختص. 923 00:37:56,450 --> 00:37:59,189 تو میں، واضح طور سے، کوئی اندازہ نہیں ہے جہاں یہ ختم کرنے کے لئے کی جا رہی ہے. 924 00:37:59,189 --> 00:38:01,480 میں تجویز ہے کہ جا رہا ہوں اس 0x88 پر ختم کرنے کے لئے جا رہا ہے. 925 00:38:01,480 --> 00:38:02,770 926 00:38:02,770 --> 00:38:06,009 مکمل طور پر صوابدیدی، لیکن 0x50 سے دوسرے کہیں، 927 00:38:06,009 --> 00:38:08,800 آپریٹنگ سسٹم کی وجہ سے، کیا ونڈوز اور میک OS میرے لئے کیا ہے، 928 00:38:08,800 --> 00:38:11,230 یہ دے رہا ہے کہ بات کو یقینی بنانا مجھے RAM کے مختلف حصوں. 929 00:38:11,230 --> 00:38:14,210 >> تو اس کی قیمت یہ ہے جہاں میموری کا حصہ ختم ہو سکتا ہے. 930 00:38:14,210 --> 00:38:16,060 تو اس 0x88، یہاں میں ختم ہو جاتی ہے. 931 00:38:16,060 --> 00:38:17,480 932 00:38:17,480 --> 00:38:21,570 تو اب واضح طور پر، میں سمجھ سکتے ہیں یہ اس کے طور پر ہی نہیں ہے کہ، 933 00:38:21,570 --> 00:38:23,960 وہ کی طرف اشارہ کر رہے ہیں کیونکہ میموری کے مختلف حصوں. 934 00:38:23,960 --> 00:38:29,980 اب میں اصل میں اس کو کاپی کرنا چاہتے ہیں تو میں، آپ کی مجوزہ حل کرتے ہیں. 935 00:38:29,980 --> 00:38:36,870 >> ، صرف، جانے کے لوپ کے لئے ایک کی تخلیق کرتے ہیں اور ٹی بریکٹ مجھے کی بریکٹ میں ہو جاتا ہے. 936 00:38:36,870 --> 00:38:39,760 اب میں استعمال کر سکتے ہیں کیونکہ اس صف کی طرح علامت، 937 00:38:39,760 --> 00:38:43,390 کیونکہ اگرچہ malloc کی بہت عام مجھ میموری مختص، 938 00:38:43,390 --> 00:38:45,290 میموری صرف ملحق بائٹس ہے. 939 00:38:45,290 --> 00:38:47,240 بائٹ، بائٹ، بائٹ، واپس واپس کرنے کے لئے واپس کرنے کے لئے. 940 00:38:47,240 --> 00:38:50,030 >> میں ایک پروگرامر کے طور پر ضرور کر سکتے ہیں ایک سرنی، کے طور پر اس کا علاج جس 941 00:38:50,030 --> 00:38:55,090 میں اس کے آخر میں واقف استعمال کر سکتے ہیں کا مطلب ہے کہ کچھ مربع بریکٹ سنکیتن کے. 942 00:38:55,090 --> 00:38:56,462 943 00:38:56,462 --> 00:39:00,020 >> تو مجھے، کیونکہ وہاں روک دو یہ بھی، تمام ایک بار میں ایک بہت کچھ ہے 944 00:39:00,020 --> 00:39:03,530 بنیادی خیال recap کرنے کے لئے اگرچہ کہ سٹرنگ ہے، اس وقت، 945 00:39:03,530 --> 00:39:05,550 ایک نئے اعداد و شمار کی قسم SE فی نہیں ہے. 946 00:39:05,550 --> 00:39:10,150 یہ صرف ایک نام نہاد پوائنٹر ہے ایک کردار کا پتہ، 947 00:39:10,150 --> 00:39:12,650 جس میں صرف کا مطلب ہے کہ یہ ایک بڑی تعداد ہے انسانی کنونشن کی طرف سے 948 00:39:12,650 --> 00:39:15,350 ہم 0x کے کچھ کے طور پر لکھنے کے لئے ہوتے ہیں. 949 00:39:15,350 --> 00:39:18,590 >> لیکن یہ صرف ایک نمبر ہے 33 آکسفورڈ سٹریٹ کی طرح، 950 00:39:18,590 --> 00:39:20,530 جس پر ہوتا ہے CS عمارت کا پتہ. 951 00:39:20,530 --> 00:39:22,000 952 00:39:22,000 --> 00:39:23,545 ان تفصیلات پر کوئی سوال؟ 953 00:39:23,545 --> 00:39:24,790 954 00:39:24,790 --> 00:39:25,289 جی ہاں؟ 955 00:39:25,289 --> 00:39:28,530 >> سامعین: ہم کیوں چیک کریں برابر T کے لئے شہوت انگیز null؟ 956 00:39:28,530 --> 00:39:30,740 >> DAVID J. MALAN: ہم کیوں کرتے شہوت انگیز null برابر T کے لئے چیک کریں؟ 957 00:39:30,740 --> 00:39:33,250 ہم documentation-- پڑھتے ہیں malloc کے لئے بہت اچھا سوال، 958 00:39:33,250 --> 00:39:37,020 یہ ٹھیک پرنٹ میں کہا جا رہا ہے کبھی کبھی malloc کی، شہوت انگیز null واپس کر سکتے ہیں 959 00:39:37,020 --> 00:39:38,080 صرف GetString طرح. 960 00:39:38,080 --> 00:39:41,820 اور یقینا، GetString کی شہوت انگیز null واپس ، کے نتیجے میں، malloc نل واپس، 961 00:39:41,820 --> 00:39:43,130 GetString کے malloc کا استعمال کرتا ہے کیونکہ. 962 00:39:43,130 --> 00:39:46,400 >> OS تو ہے کہ، ہو سکتا ہے میک OS، ونڈوز، جو کچھ بھی، صرف 963 00:39:46,400 --> 00:39:48,130 آپ کے لئے میموری سے باہر. 964 00:39:48,130 --> 00:39:49,820 تو ہے کہ وہاں کیا ہوا ہے. 965 00:39:49,820 --> 00:39:52,910 >> اور مجھے ایک اور چیز کو ظاہر کرتے ہیں یہ صرف آپ کے دماغ اڑا سکتا ہے 966 00:39:52,910 --> 00:39:55,100 یا مکمل طور پر بہت دور لائن ختم ہو جائے. 967 00:39:55,100 --> 00:39:59,770 لیکن مجھے ھیںچو کاپی کے لئے لوپ کے لئے ایک ہی، 968 00:39:59,770 --> 00:40:05,480 جس میں ایک لمحے پہلے، یاد تھا اس. T بریکٹ میں بریکٹ میں ہو جاتا ہے. 969 00:40:05,480 --> 00:40:06,740 >> اچھا اور صارف دوستانہ. 970 00:40:06,740 --> 00:40:09,330 پھر ہفتہ قبل دو طرح لگتا ہے. 971 00:40:09,330 --> 00:40:14,920 لیکن اس ورژن اصل میں ہو سکتا ہے خفیہ لگ رہا ہے جس میں اس کے طور پر دوبارہ. 972 00:40:14,920 --> 00:40:18,280 یہ ایک ٹیکنالوجی کہا جاتا پوائنٹر ہے ریاضی، ایڈریس ریاضی. 973 00:40:18,280 --> 00:40:19,600 لیکن کیوں کام کرتا ہے؟ 974 00:40:19,600 --> 00:40:22,220 >> اب سے annoyingly، C کے مصنفین کے استعمال کرنے کا فیصلہ 975 00:40:22,220 --> 00:40:25,070 مختلف مقاصد کے لئے * علامت. 976 00:40:25,070 --> 00:40:29,020 ہم، یہ پہلے سے ہی ایک بار استعمال کیا دیکھا ہے جس کا مطلب ہے چار *، "مجھے ایک متغیر دے 977 00:40:29,020 --> 00:40:31,210 اس پر مشتمل جا رہا ہے ایک چار کا پتہ. " 978 00:40:31,210 --> 00:40:33,990 اس تناظر میں تو چار * "مجھے ایک متغیر دے." کا مطلب 979 00:40:33,990 --> 00:40:40,050 >> بدقسمتی سے، آپ * کے بغیر استعمال کرتے ہیں تو اس کے سامنے ایک لفظ، چار کی طرح، 980 00:40:40,050 --> 00:40:41,905 اب یہ کہا جاتا ہے dereference آپریٹر. 981 00:40:41,905 --> 00:40:43,530 اور ہم نے بہت پہلے اس سے زیادہ نظر آئے گا. 982 00:40:43,530 --> 00:40:44,930 لیکن یہ صرف "وہاں جاؤ." کا مطلب 983 00:40:44,930 --> 00:40:49,070 کسی نے مجھے حوالے تو یہ، کہہ طرح ہے کاغذ کا ایک ٹکڑا پر "33 آکسفورڈ سٹریٹ،" 984 00:40:49,070 --> 00:40:53,830 میں نے کہا "* 33 آکسفورڈ سٹریٹ،" ایسا کرتے ہیں کا مطلب ہے کہ "CS عمارت کے راستے پر جانا." 985 00:40:53,830 --> 00:40:57,220 >> تو * صرف وہاں ہے تو جانے کا مطلب اس کے سامنے کوئی لفظ نہیں ہے. 986 00:40:57,220 --> 00:40:59,100 تو واضح ہو، ٹی کیا ہے؟ 987 00:40:59,100 --> 00:41:03,250 ٹی کے حصہ کا پتہ ہے میرے پاس واپس دیا گیا تھا کہ میموری. 988 00:41:03,250 --> 00:41:06,650 کی، واضح ہو کیا، کا پتہ ہے مثال میں ہم بحث کر دیا گیا ہے، 989 00:41:06,650 --> 00:41:07,500 چھوٹے Gabe کی ہے؟ 990 00:41:07,500 --> 00:41:08,990 991 00:41:08,990 --> 00:41:10,005 پتہ ہے of-- 992 00:41:10,005 --> 00:41:11,585 993 00:41:11,585 --> 00:41:12,460 سامعین: سٹرنگ. 994 00:41:12,460 --> 00:41:14,126 DAVID J. MALAN: Gabe کی اصل نام کے. 995 00:41:14,126 --> 00:41:16,660 تو اس کا پتہ ہے میموری کے اس حصہ. 996 00:41:16,660 --> 00:41:22,220 تو میں نے کا کہنا ہے کہ T + میں ... میں، نوٹس، صرف ہمارے پرانے دوست ہے. 997 00:41:22,220 --> 00:41:24,770 یہ صرف ایک انڈیکس متغیر ہے کہ اپ پر صفر سے iterating ہے 998 00:41:24,770 --> 00:41:26,960 سٹرنگ کی لمبائی. 999 00:41:26,960 --> 00:41:30,367 تو یہ، اس کے بعد صفر، ایک ہونے جا رہا ہے پھر دو، پھر تین، چار. 1000 00:41:30,367 --> 00:41:33,200 تو ان نئے جمع سکریچ کی طرح پہیلی کے ٹکڑے ٹکڑے، اگر آپ، 1001 00:41:33,200 --> 00:41:36,140 اگرچہ، ایک بار پھر، نحو سکریچ سے کہیں زیادہ arcane ہے. 1002 00:41:36,140 --> 00:41:39,522 تو T ایک ایڈریس + ہے مجھے دینے جا رہا ہے 1003 00:41:39,522 --> 00:41:42,480 ایک بڑی تعداد، ان کی وجہ سے ہیں ہم ہیکس کے طور پر ڈرائنگ ہے کہ تعداد. 1004 00:41:42,480 --> 00:41:43,560 لیکن وہ صرف تعداد ہیں. 1005 00:41:43,560 --> 00:41:49,960 >> T کا پتہ ہم نے تو تھا 0x88، 0x88 کے علاوہ صفر ہے. 1006 00:41:49,960 --> 00:41:51,564 1007 00:41:51,564 --> 00:41:53,980 آپ کو آرام دہ نہیں ہیں یہاں تک کہ اگر ابھی ہیکس کے ساتھ، ایک اندازہ. 1008 00:41:53,980 --> 00:41:54,410 >> سامعین: اصل. 1009 00:41:54,410 --> 00:41:55,850 >> DAVID J. MALAN: 0x88 پھر بھی. 1010 00:41:55,850 --> 00:41:58,910 تو * کیا مطلب 0x88 ہے؟ 1011 00:41:58,910 --> 00:42:02,670 یہ جس کا مطلب ہے "وہاں جانا"، کا مطلب ہے کہ مؤثر طریقے سے، "اپنی انگلی ڈال یہاں." 1012 00:42:02,670 --> 00:42:06,930 اور اب کے دائیں ہاتھ کی طرف پر اس اظہار، * اور اس کے بعد والدین میں، 1013 00:42:06,930 --> 00:42:11,586 کے میں ہے جس میں، اس کا مطلب + یہاں چھوٹی سی جی کے حل. 1014 00:42:11,586 --> 00:42:16,220 کی + 0، کورس کی، ہے جو کچھ بھی کی، ہے. 1015 00:42:16,220 --> 00:42:21,230 >> تو اب، اس کے *، ہے جس میں صرف * 33 کی طرح آکسفورڈ سٹریٹ ایڈریس پر جانے کا مطلب ہے کہ 1016 00:42:21,230 --> 00:42:22,010 کی. 1017 00:42:22,010 --> 00:42:24,170 تو یہاں اس کی انگلی، دائیں ہاتھ ہے. 1018 00:42:24,170 --> 00:42:26,050 تو کیا میں کیا میں کاپی کرنے کے لئے جا رہا ہوں؟ 1019 00:42:26,050 --> 00:42:30,260 ہے جو حق پر بات، Gabe کی، یہاں میں یہاں تھوڑا G،. 1020 00:42:30,260 --> 00:42:32,750 >> اس کے اور اس کا اثر لوپ کے پہلے iteration، 1021 00:42:32,750 --> 00:42:36,200 آپ کو یہ لگتا ہے، اگرچہ، کے طور پر تجویز پیش کی کسی بھی چیز سے پاگل زیادہ پیچیدہ 1022 00:42:36,200 --> 00:42:42,110 ہم پہلے دیکھا ہے صرف کہہ رہا ہے یہاں جانا اور یہاں کہ کردار کی نقل. 1023 00:42:42,110 --> 00:42:44,700 یہ آپ دونوں مقامات پر ایک نقشہ دے رہی ہے. 1024 00:42:44,700 --> 00:42:46,130 >> اور ہم نے اس کے کہیں زیادہ نظر آئے گا. 1025 00:42:46,130 --> 00:42:50,600 لیکن اب کے لئے، امید ہے ان بنیادی نظریات میں سے کچھ کو متعارف کرانے. 1026 00:42:50,600 --> 00:42:53,550 اور یقینا، دیکھو یہاں ایک حتمی پروگرام، 1027 00:42:53,550 --> 00:42:57,480 اور اس کے بعد وعدہ کیا claymation، جس میں سب کچھ ٹھیک کر دے گا. 1028 00:42:57,480 --> 00:42:57,980 ٹھیک ہے. 1029 00:42:57,980 --> 00:43:01,680 تو مجھے ہم وہاں چلتے up-- کھولنے. 1030 00:43:01,680 --> 00:43:02,850 1031 00:43:02,850 --> 00:43:05,440 ہم واپس آ جائیں گے me-- تو دو طویل عرصے سے پہلے اس تصویر میں. 1032 00:43:05,440 --> 00:43:08,360 مجھے یہاں یہ آخری مثال کے طور پر کھول دو. 1033 00:43:08,360 --> 00:43:09,440 1034 00:43:09,440 --> 00:43:12,710 >> تو یہاں ایک سپر، سپر ہے کو accomplishes اس پروگرام 1035 00:43:12,710 --> 00:43:15,050 درج ذیل کرتا ہے کہ زندگی میں کچھ بھی نہیں. 1036 00:43:15,050 --> 00:43:18,740 یہ سب سے پہلے دو متغیر، X اعلان اور اس وقت تعداد میں نہیں ہیں کہ Y،، 1037 00:43:18,740 --> 00:43:19,240 SE فی. 1038 00:43:19,240 --> 00:43:20,448 وہ SE فی، integers کے نہیں ہیں. 1039 00:43:20,448 --> 00:43:22,899 انہوں * بظاہر ہیں int کی. 1040 00:43:22,899 --> 00:43:25,690 تو کسی کو بھی، اس کا کیا مطلب ہے آپ کے ڈیٹا کی قسم ہے تو، آپ متغیر، 1041 00:43:25,690 --> 00:43:26,860 قسم int * سٹار کی ہے؟ 1042 00:43:26,860 --> 00:43:30,240 یہ ایک int کا پتہ ہے. 1043 00:43:30,240 --> 00:43:31,990 >> تو میں نے یہ ابھی تک ہے جہاں کوئی اندازہ نہیں ہے. 1044 00:43:31,990 --> 00:43:35,150 یہ صرف "، آخر میں، ڈال کا مطلب یہاں ایک int کا پتہ. " 1045 00:43:35,150 --> 00:43:38,340 اس میں ہے جہاں کہیں بھی 0x50، 0x88، میموری، ایک ایڈریس سے کی جا رہی ہے. 1046 00:43:38,340 --> 00:43:40,200 اور اس Y کیا ہے اس کے ساتھ ساتھ، ہو جا. 1047 00:43:40,200 --> 00:43:44,920 >> میں اب کہتے ہیں X = malloc کے (آپ sizeof (int))، یہ کہنے کی پسند ہیں طریقہ ہے، 1048 00:43:44,920 --> 00:43:49,000 ارے آپریٹنگ سسٹم، malloc کے ذریعے، سائز کے لئے مجھے کافی میموری دے 1049 00:43:49,000 --> 00:43:52,370 شاید ہے جو ایک int، کا 32 بٹیں یا چار بائٹس کو ہونے جا رہا. 1050 00:43:52,370 --> 00:43:53,680 >> تو malloc کیا واپس کرتا ہے؟ 1051 00:43:53,680 --> 00:43:55,250 malloc کا ایک ایڈریس کی واپسی. 1052 00:43:55,250 --> 00:43:57,020 تو ایکس میں محفوظ کرنے کے لئے جا رہا ہے؟ 1053 00:43:57,020 --> 00:44:00,600 کے حصہ کا پتہ میموری، چار بائٹس، کہ malloc کی 1054 00:44:00,600 --> 00:44:03,360 صرف پوچھ کی طرف سے میرے لئے مل گیا آپریٹنگ سسٹم. 1055 00:44:03,360 --> 00:44:08,240 >> اب اس دوران، لائن یہاں چار، * X = 42. 1056 00:44:08,240 --> 00:44:09,990 بس، واضح ہو وہاں کیا جا رہا ہے؟ 1057 00:44:09,990 --> 00:44:11,530 بائیں ہاتھ پر، * ایکس. 1058 00:44:11,530 --> 00:44:13,610 کہ * 33 آکسفورڈ سٹریٹ کی طرح ہے. 1059 00:44:13,610 --> 00:44:15,523 تو * ایکس مطلب کیا ہے؟ 1060 00:44:15,523 --> 00:44:16,450 >> سامعین: کرنے کے لئے جاؤ. 1061 00:44:16,450 --> 00:44:17,908 >> DAVID J. MALAN: اس ایڈریس پر جاؤ. 1062 00:44:17,908 --> 00:44:20,466 جہاں کہیں بھی کے اس حصہ یاد داشت کی اس کے لئے جانا، ہے. 1063 00:44:20,466 --> 00:44:21,979 اور ظاہر ہے، کیا وہاں ڈال دیا؟ 1064 00:44:21,979 --> 00:44:22,520 سامعین: 42. 1065 00:44:22,520 --> 00:44:23,580 DAVID J. MALAN: 42. 1066 00:44:23,580 --> 00:44:25,650 ٹھیک ہے، * Y، اسی خیال. 1067 00:44:25,650 --> 00:44:26,860 Y میں ایڈریس. 1068 00:44:26,860 --> 00:44:31,740 وہاں 13 نمبر ڈال، لیکن اس وقت Y کیا ہے؟ 1069 00:44:31,740 --> 00:44:33,172 1070 00:44:33,172 --> 00:44:34,630 سامعین: کوئی میموری Y کے لئے نہیں ہے. 1071 00:44:34,630 --> 00:44:35,710 DAVID J. MALAN: نہیں Y کے لئے کوئی میموری ہے. 1072 00:44:35,710 --> 00:44:38,215 تو کیا شاید Y کرتا ہے ہم کہہ رہے ہیں کے طور پر، پر مشتمل ہے؟ 1073 00:44:38,215 --> 00:44:38,520 >> سامعین: ردی کی ٹوکری. 1074 00:44:38,520 --> 00:44:39,480 >> DAVID J. MALAN: کچھ ردی کی ٹوکری کی قیمت. 1075 00:44:39,480 --> 00:44:41,320 اب، ردی کی ٹوکری کی قیمت اب بھی ایک بڑی تعداد ہے. 1076 00:44:41,320 --> 00:44:43,160 یہ اب بھی ایک ایڈریس کے لئے غلطی پر ہو سکتا ہے. 1077 00:44:43,160 --> 00:44:45,160 یہ کسی کے طور پر اگرچہ ہے ، نیچے کچھ لکھا 1078 00:44:45,160 --> 00:44:48,002 اور میں معنی کے طور پر اس کی غلط تشریح گلی میں کچھ عمارت. 1079 00:44:48,002 --> 00:44:50,460 اور آپ کو صرف میں جانے کی کوشش کی تو آپ کے مالک نہیں ہیں کچھ عمارت، 1080 00:44:50,460 --> 00:44:53,710 یا میموری کا کچھ حصہ آپ کو نہیں ہے دیا گیا، بری چیزیں ہو سکتا ہے. 1081 00:44:53,710 --> 00:44:57,740 کمپیوٹر کچھ دوسرے کریش، یا ہو سکتا ہے تعین رویہ ہو سکتا ہے. 1082 00:44:57,740 --> 00:45:01,310 >> تو، پھر، Binky پر یہ تعارف ہے. 1083 00:45:01,310 --> 00:45:04,290 میں اب بھی 20، یاد کچھ عجیب سال کے بعد، 1084 00:45:04,290 --> 00:45:07,200 جب میں نے آخر میں تھا جہاں اشارہ سمجھا. 1085 00:45:07,200 --> 00:45:09,520 >> اگر آپ کا کہنا ہے کہ کے لئے ہے جو تین منٹ میں یہاں چھوڑ 1086 00:45:09,520 --> 00:45:12,170 اور میں نہیں ہے اشارہ سمجھنے، احساس 1087 00:45:12,170 --> 00:45:14,410 میں 20 کے لئے یاد ہے کچھ پاگل وجہ سال 1088 00:45:14,410 --> 00:45:17,140 کب اور کیوں اس کے آخر میں ڈوب میں، میری تعلیم کے ساتھ بیٹھے 1089 00:45:17,140 --> 00:45:19,501 ساتھی، نشاط مہتا میں ایلیٹ ڈائننگ ہال کے پیچھے. 1090 00:45:19,501 --> 00:45:21,250 اب، مجھے یاد ہے یہ تھا کیونکہ 1091 00:45:21,250 --> 00:45:23,920 موضوعات میں، میں سے ایک خاص طور پر، کے ساتھ جدوجہد کی. 1092 00:45:23,920 --> 00:45:26,470 اور پھر، اس کے آخر پر کلک کیا، جیسے میں موضوعات کی ایک بہت کچھ کہنے کی جرات 1093 00:45:26,470 --> 00:45:27,460 آخر میں کرے گا. 1094 00:45:27,460 --> 00:45:32,590 اور اب، کہ تمام محسوس کرنے کے لئے خوشی اور سب سے زیادہ اس بات پر قائل، 1095 00:45:32,590 --> 00:45:35,360 میں ایک حتمی نظر ڈالیں ہمارے یہاں Binky میں آخری تین منٹ، 1096 00:45:35,360 --> 00:45:37,675 ہمارے دوست، نک سے سٹینفورڈ سے Parlante. 1097 00:45:37,675 --> 00:45:38,910 1098 00:45:38,910 --> 00:45:41,580 >> [ویڈیو پلے بیک] 1099 00:45:41,580 --> 00:45:42,750 >> -Hey، کرو. 1100 00:45:42,750 --> 00:45:43,500 اٹھو! 1101 00:45:43,500 --> 00:45:45,960 یہ پوائنٹر تفریح ​​کے لئے وقت ہے. 1102 00:45:45,960 --> 00:45:47,012 >> کہ کیا ہے؟ 1103 00:45:47,012 --> 00:45:48,723 اشارہ کے بارے میں معلومات حاصل کریں؟ 1104 00:45:48,723 --> 00:45:50,580 اوہ، واہ! 1105 00:45:50,580 --> 00:45:53,563 >> ٹھیک ہے، شروع کرنے کے لئے، میں ہم ہیں لگتا ہے ایک جوڑے اشارہ کی ضرورت کے لئے جا. 1106 00:45:53,563 --> 00:45:54,390 >> ٹھیک ہے. 1107 00:45:54,390 --> 00:45:57,930 اس کوڈ، دو اشارہ مختص جس integers کے کی طرف اشارہ کر سکتے ہیں. 1108 00:45:57,930 --> 00:45:58,430 ٹھیک ہے. 1109 00:45:58,430 --> 00:46:02,140 ویسے، میں نے دو اشارہ دیکھتے ہیں، لیکن وہ کچھ کی طرف اشارہ کرنے کے لئے نہیں لگتے. 1110 00:46:02,140 --> 00:46:02,980 >> -That ٹھیک ہے. 1111 00:46:02,980 --> 00:46:05,100 ابتدائی طور پر، اشارہ کچھ بھی نہیں کی طرف اشارہ کرتے ہیں. 1112 00:46:05,100 --> 00:46:08,030 وہ کہتے ہیں کی طرف اشارہ چیزیں pointees، اور ان کی ترتیب 1113 00:46:08,030 --> 00:46:09,370 ایک علیحدہ قدم. 1114 00:46:09,370 --> 00:46:10,220 >> ٹھیک ہے، ٹھیک، اوہ. 1115 00:46:10,220 --> 00:46:10,950 مجھے پتہ تھا. 1116 00:46:10,950 --> 00:46:12,385 pointees الگ ہیں. 1117 00:46:12,385 --> 00:46:14,315 یر، تو کس طرح آپ کو ایک pointee مختص ہے؟ 1118 00:46:14,315 --> 00:46:15,340 1119 00:46:15,340 --> 00:46:15,960 >> ٹھیک ہے. 1120 00:46:15,960 --> 00:46:18,970 ویسے، اس کوڈ کو مختص ایک نئے عددی pointee، 1121 00:46:18,970 --> 00:46:20,950 اور اس حصے کا تعین کرتا ہے ایکس اس کی طرف اشارہ کرنے کے لئے. 1122 00:46:20,950 --> 00:46:22,050 1123 00:46:22,050 --> 00:46:23,230 >> -Hey، یہ بہتر لگتا ہے. 1124 00:46:23,230 --> 00:46:25,060 تو اسے کچھ کرنا. 1125 00:46:25,060 --> 00:46:25,990 >> ٹھیک ہے. 1126 00:46:25,990 --> 00:46:30,455 میں پوائنٹر X dereference گے اس pointee میں 42 نمبر جمع. 1127 00:46:30,455 --> 00:46:32,830 یہ چال کے لئے، میں نے کی ضرورت ہو گی میری محولہ لقب ضبطی کے جادو کی چھڑی. 1128 00:46:32,830 --> 00:46:34,130 1129 00:46:34,130 --> 00:46:36,080 >> محولہ لقب ضبطی کے جادو کی چھڑی آپ کا؟ 1130 00:46:36,080 --> 00:46:37,357 1131 00:46:37,357 --> 00:46:38,190 That-- یہ بہت اچھا ہے. 1132 00:46:38,190 --> 00:46:39,340 1133 00:46:39,340 --> 00:46:41,080 >> -یہ کوڈ کی طرح لگتا ہے. 1134 00:46:41,080 --> 00:46:44,110 میں نے صرف تعداد، اور POP] قائم کریں گے 1135 00:46:44,110 --> 00:46:44,700 >> -Hey، دیکھو. 1136 00:46:44,700 --> 00:46:46,140 وہاں جاتا ہے. 1137 00:46:46,140 --> 00:46:50,980 >> X مندرجہ ذیل پر dereference کر -تو تیر اس pointee تک رسائی حاصل کرنے کے لئے. 1138 00:46:50,980 --> 00:46:53,160 اس صورت میں، وہاں ایک دکان 42. 1139 00:46:53,160 --> 00:46:57,710 ارے تعداد میں جمع کرنے کے لئے اس کا استعمال کرتے ہوئے کرنے کی کوشش کریں دوسرے پوائنٹر کے ذریعے 13، Y. 1140 00:46:57,710 --> 00:46:58,760 >> ٹھیک ہے. 1141 00:46:58,760 --> 00:47:03,270 میں صرف Y کے لئے یہاں جائیں گے، اور ان کی تعداد 13 سیٹ حاصل. 1142 00:47:03,270 --> 00:47:07,930 اور پھر، کے چھڑی لے محولہ لقب ضبطی اور صرف [BUZZ] 1143 00:47:07,930 --> 00:47:08,960 >> اوہ! 1144 00:47:08,960 --> 00:47:09,500 >> ارے، اوہ! 1145 00:47:09,500 --> 00:47:11,090 یہ کام نہیں کیا. 1146 00:47:11,090 --> 00:47:15,630 کرو، میں محولہ لقب ضبطی نہیں لگتا ہے، کا کہنا ہے کہ آپ کو پتہ ہے کیونکہ Y،، ایک اچھا خیال ہے 1147 00:47:15,630 --> 00:47:17,850 pointee قائم ایک علیحدہ قدم ہے. 1148 00:47:17,850 --> 00:47:20,450 اور میں ہم نے کبھی یہ کیا نہیں لگتا. 1149 00:47:20,450 --> 00:47:21,480 >> اچھا نقطہ. 1150 00:47:21,480 --> 00:47:21,980 جی ہاں. 1151 00:47:21,980 --> 00:47:25,680 ہم پوائنٹر Y مختص، لیکن ہم کبھی ایک pointee کی طرف اشارہ کرنے کے لئے مقرر. 1152 00:47:25,680 --> 00:47:27,190 1153 00:47:27,190 --> 00:47:28,616 >> -بہت مشاہدہ. 1154 00:47:28,616 --> 00:47:30,240 -Hey، آپ، وہاں کرو اچھے لگ رہے ہو. 1155 00:47:30,240 --> 00:47:33,400 آپ تاکہ اسے ٹھیک کر سکتے Y پوائنٹس ایکس کے طور پر ایک ہی pointee؟ 1156 00:47:33,400 --> 00:47:34,000 >> ضرور. 1157 00:47:34,000 --> 00:47:36,780 میں اپنے جادو کی چھڑی کا استعمال کریں گے پوائنٹر تفویض کی. 1158 00:47:36,780 --> 00:47:38,740 >> جا رہا ہے کہ -is پہلے کی طرح ایک مسئلہ ہے؟ 1159 00:47:38,740 --> 00:47:39,240 کوئی. 1160 00:47:39,240 --> 00:47:40,660 یہ pointees چھو نہیں ہے. 1161 00:47:40,660 --> 00:47:44,450 یہ صرف ایک پوائنٹر تبدیل دوسرے کے طور پر ایک ہی بات کی طرف اشارہ ہے. 1162 00:47:44,450 --> 00:47:45,450 >> اوہ، میں دیکھ رہا ہوں. 1163 00:47:45,450 --> 00:47:48,200 ایکس کے طور پر ایک ہی جگہ پر Y پوائنٹس. 1164 00:47:48,200 --> 00:47:48,910 تو انتظار. 1165 00:47:48,910 --> 00:47:49,950 اب، Y طے ہو گئی ہے. 1166 00:47:49,950 --> 00:47:51,120 یہ ایک pointee ہے. 1167 00:47:51,120 --> 00:47:54,510 تو آپ کی چھڑی کرنے کی کوشش کر سکتے ہیں 13 دوبارہ بھیجنے کی محولہ لقب ضبطی. 1168 00:47:54,510 --> 00:47:56,510 >> ٹھیک ہے، -Uh. 1169 00:47:56,510 --> 00:47:58,160 یہ یہاں جاتا ہے. [POP] 1170 00:47:58,160 --> 00:47:59,340 >> -Hey، اس کو دیکھو. 1171 00:47:59,340 --> 00:48:00,750 اب Y پر کام محولہ لقب ضبطی. 1172 00:48:00,750 --> 00:48:04,991 اور اشارہ اشتراک کر رہے ہیں ایک pointee ہے کہ، وہ دونوں 13 دیکھیں. 1173 00:48:04,991 --> 00:48:05,490 جی ہاں. 1174 00:48:05,490 --> 00:48:06,870 اشتراک، جو کچھ بھی. 1175 00:48:06,870 --> 00:48:08,820 تو کیا اب ہم مقامات پر تبدیل کرنے جا رہے ہیں؟ 1176 00:48:08,820 --> 00:48:09,440 >> اوہ، دیکھو. 1177 00:48:09,440 --> 00:48:10,830 ہم وقت سے باہر ہیں. 1178 00:48:10,830 --> 00:48:11,570 >> -But-- 1179 00:48:11,570 --> 00:48:13,530 >> تین پوائنٹر قوانین یاد ہے بس. 1180 00:48:13,530 --> 00:48:16,560 نمبر ایک، بنیادی ڈھانچے آپ کو ایک پوائنٹر ہے، 1181 00:48:16,560 --> 00:48:18,680 اور یہ ایک pointee کی طرف اشارہ. 1182 00:48:18,680 --> 00:48:20,640 لیکن پوائنٹر اور pointee ہے، الگ الگ ہیں 1183 00:48:20,640 --> 00:48:22,610 اور عام غلطی پوائنٹر قائم کرنے کے لئے ہے، 1184 00:48:22,610 --> 00:48:25,000 لیکن یہ ایک pointee دینے کو بھولنا. 1185 00:48:25,000 --> 00:48:28,170 >> نمبر دو، پوائنٹر محولہ لقب ضبطی پوائنٹر شروع ہوتا ہے 1186 00:48:28,170 --> 00:48:31,050 اور اس سے زیادہ اس کا تیر مندرجہ ذیل اس pointee تک رسائی حاصل کرنے کے لئے. 1187 00:48:31,050 --> 00:48:33,400 ہم سب جانتے ہیں، اس ہے تو صرف کام کرتا ہے 1188 00:48:33,400 --> 00:48:36,270 ایک pointee، جس قسم کی نمبر ایک قاعدہ پر واپس ہو جاتا ہے. 1189 00:48:36,270 --> 00:48:39,000 >> تین نمبر، پوائنٹر تفویض ایک پوائنٹر لیتا ہے 1190 00:48:39,000 --> 00:48:42,320 اور کی طرف اشارہ کرنے کے لئے اسے تبدیل دوسرے پوائنٹر کے طور پر ایک ہی pointee. 1191 00:48:42,320 --> 00:48:44,160 تفویض کے بعد، دو اشارہ 1192 00:48:44,160 --> 00:48:45,910 اسی pointee کی طرف اشارہ کریں گے. 1193 00:48:45,910 --> 00:48:47,990 کبھی کبھی، کہ اشتراک کہا جاتا ہے. 1194 00:48:47,990 --> 00:48:49,740 اور یہ کہ واقعی، اس کے لئے ہے ہے. 1195 00:48:49,740 --> 00:48:50,277 الوداع اب. 1196 00:48:50,277 --> 00:48:51,110 [END ویڈیو پلے بیک] 1197 00:48:51,110 --> 00:48:52,568 DAVID J. MALAN: یہ CS50 کے لئے ہے. 1198 00:48:52,568 --> 00:48:55,110 ہم اگلے ہفتے آپ دیکھیں گے. 1199 00:48:55,110 --> 00:48:56,064