1 00:00:00,000 --> 00:00:02,670 >> [موضوع الموسيقى] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> رئيس 1: مرحبا، الجميع. 4 00:00:13,365 --> 00:00:14,365 أهلا بكم من جديد إلى القسم. 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 يوم جميل out-- وهذا هو السبب، وأنا بالتأكيد، لا يوجد سوى أربعة منكم هنا 7 00:00:18,700 --> 00:00:21,180 وليس لدينا حزمة العادية. 8 00:00:21,180 --> 00:00:22,670 لقد كنت مريضة في نهاية هذا الاسبوع. 9 00:00:22,670 --> 00:00:24,294 لذلك ليس لدي النجمي ليا رفاق. 10 00:00:24,294 --> 00:00:26,400 وأنا قد يبدأ السعال رهيب طوال هذه. 11 00:00:26,400 --> 00:00:27,790 لذلك تحمل فقط معي. 12 00:00:27,790 --> 00:00:30,624 انا ذاهب الى محاولة حقا وتحصل من خلال هذا أولا، 13 00:00:30,624 --> 00:00:32,290 رغم ذلك، قبل أن يصابون بنوبة سعال. 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 ولكن مجرد أن يكون من السهل على لي قليلا bit-- هذا كل ما أطلب. 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> لذلك جدول أعمالنا لاليوم- مجرد reminder-- مسابقة الخاص بك هو الأسبوع المقبل. 18 00:00:44,289 --> 00:00:46,830 قلت لكم هذا في الأسبوع الماضي لذلك لن قبض عليك على حين غرة. 19 00:00:46,830 --> 00:00:47,954 لذلك أنا تذكيرك مرة أخرى. 20 00:00:47,954 --> 00:00:49,180 الأسبوع القادم مسابقة لديك. 21 00:00:49,180 --> 00:00:52,730 تحقيقا لهذه الغاية، الأسبوع المقبل سوف يكون القسم أكثر بكثير 22 00:00:52,730 --> 00:00:55,180 of-- وسأحاول العمل في بعض المراجعة. 23 00:00:55,180 --> 00:00:58,130 حتى إذا استطاع رفاق مساعدتي من خلال ارسال لي 24 00:00:58,130 --> 00:01:00,990 الأشياء التي كنت مرتاحا مع أن كنت قلقا، 25 00:01:00,990 --> 00:01:03,530 المواضيع التي ترغب ل لي لتغطية، التي تريد ان تكون كبيرة. 26 00:01:03,530 --> 00:01:05,740 حتى أستطيع أن محاولة والعمل لهم في القسم لدينا في الأسبوع القادم 27 00:01:05,740 --> 00:01:11,540 أو نرسل لك مواد إضافية أو الإعدادية التي قد لا تحصل في أي مكان آخر. 28 00:01:11,540 --> 00:01:12,150 >> نعم! 29 00:01:12,150 --> 00:01:13,520 المزيد من الناس يأتون! 30 00:01:13,520 --> 00:01:17,320 فكرت، لم أفعل هذا الأخير بشكل سيئ الأسبوع، أن لا أحد يريد أن يعود؟ 31 00:01:17,320 --> 00:01:18,065 أنا خائفة. 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 حتى الأشياء الثلاثة الأخرى أننا في طريقنا للذهاب أكثر 34 00:01:21,100 --> 00:01:24,850 هي إعادة توجيه، وملف I / O، و ثم مؤشرات والذاكرة الديناميكية. 35 00:01:24,850 --> 00:01:29,160 أنا متأكد من أنك كنت كل متحمسون السوبر pointers-- الموضوع المفضل للجميع، 36 00:01:29,160 --> 00:01:31,310 بسيطة جدا لفهم. 37 00:01:31,310 --> 00:01:33,130 أنا متأكد يا رفاق حصلت على كل ذلك، أليس كذلك؟ 38 00:01:33,130 --> 00:01:39,510 >> أول الأشياء أولا لذلك، redirection-- هذا هو في الأساس مجرد وسيلة 39 00:01:39,510 --> 00:01:42,920 للتحكم في كيفية مساهمة الأمور في البرنامج، 40 00:01:42,920 --> 00:01:44,606 كيف لك أشياء الإخراج من البرنامج. 41 00:01:44,606 --> 00:01:46,980 الطرق الرئيسية التي يا رفاق تم التفاعل معها 42 00:01:46,980 --> 00:01:51,650 هو فقط من خلال الخروج القياسية مع شاشة الطباعة الخاصة بك هنا. 43 00:01:51,650 --> 00:01:55,940 ولكن هناك طرق ل pipe-- كما نرى هنا 44 00:01:55,940 --> 00:01:58,980 هي واحدة من لدينا نوع words-- من الأنابيب هذه المعلومات 45 00:01:58,980 --> 00:02:02,850 أو أن البيانات إلى ملف من الملفات. 46 00:02:02,850 --> 00:02:05,820 انها مجرد طرق مختلفة لل الحصول على الأشياء في برنامجك 47 00:02:05,820 --> 00:02:10,681 والخروج من البرنامج، بدلا من مجرد طباعتها على هذه الشاشة 48 00:02:10,681 --> 00:02:12,430 أو إدخال أشياء من سطر الأوامر. 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> لذلك أول واحد هو القليل أكبر من الإقحام. 51 00:02:18,030 --> 00:02:22,085 حتى output-- فإنه يطبع فقط إخراج إلى ملف بدلا من الشاشة. 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 حتى إذا كان لديك شيء المطبوعة "مرحبا، العالم!" على الشاشة، 54 00:02:29,500 --> 00:02:32,400 إذا وضعت بدلا من ذلك لoutput.text، أن 55 00:02:32,400 --> 00:02:35,220 يخلق هذا الملف يسمى output.text. 56 00:02:35,220 --> 00:02:38,550 وعند فتحه، وأنها سوف يقول "مرحبا، العالم!" في هناك. 57 00:02:38,550 --> 00:02:41,410 وهذا يمكن أن يكون مفيدا السوبر إذا كان لديك طن من الأخطاء 58 00:02:41,410 --> 00:02:43,430 في الواقع، كما نرى في هذا واحد. 59 00:02:43,430 --> 00:02:46,810 إذا كنت تفعل اثنين من الإقحام، وأنها سوف طباعة رسائل الخطأ. 60 00:02:46,810 --> 00:02:52,090 >> لذا إذا كنت تواجه مشكلة مع تجميع، فإنه لديه الكثير من الأخطاء 61 00:02:52,090 --> 00:02:56,770 وكنت التورط في محاولة للتمرير عبر في سطر الأوامر الخاص بك 62 00:02:56,770 --> 00:02:59,110 من خلال كل منهم، يمكنك مجرد طباعتها إلى ملف، 63 00:02:59,110 --> 00:03:02,130 فتح هذا الملف حتى يتسنى لك يمكن التمرير من خلالهم أسهل. 64 00:03:02,130 --> 00:03:05,160 أنا في الواقع أن تستخدم الكثير عندما كنت التصحيح 65 00:03:05,160 --> 00:03:07,970 بلدي 181 psets لتعلم الآلة. 66 00:03:07,970 --> 00:03:10,000 لذلك يمكن أن يكون مفيدا عظمى في وقت لاحق. 67 00:03:10,000 --> 00:03:18,370 كما انها مفيدة إذا كان لديك برنامج التي ربما تولد مكتبة 68 00:03:18,370 --> 00:03:20,430 أو توليد بعض مجموعة سلاسل، ولك 69 00:03:20,430 --> 00:03:22,846 تحتاج إلى أن تكون قادرا على رؤية ذلك انها تولد لهم بشكل صحيح. 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 هذه هي الطريقة للقيام بذلك. 72 00:03:25,160 --> 00:03:28,280 >> حتى إذا كنت طباعتها إلى ملف، كنت يمكن فحص أكثر سهولة لهم، أليس كذلك؟ 73 00:03:28,280 --> 00:03:30,930 مقابل محاولة للتمرير من خلال سطر الأوامر الخاص بك. 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 ثم شيء واحد أن نلاحظ غير أنه مع مجرد كلما 76 00:03:35,820 --> 00:03:40,090 من الإقحام، إذا كنت تكتب إلى ملف exists-- بالفعل 77 00:03:40,090 --> 00:03:44,990 حتى لو ركضنا مثل هذا أول الوقت، وضعنا لoutput.text، 78 00:03:44,990 --> 00:03:49,970 ومن ثم كان لدينا البرنامج الثاني أن طبع من هذه كبرنامج اثنين 79 00:03:49,970 --> 00:03:54,250 وقام أكثر من لoutput.text، فإنه سيتم الكتابة that-- ذلك 80 00:03:54,250 --> 00:03:56,715 الكتابة ما كان في أي وقت مضى هذا الملف لتبدأ. 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> حتى إذا كنت تريد إلحاق إلى ملف، وكما نرى هنا، 83 00:04:00,750 --> 00:04:04,779 أنت فقط تفعل اثنين من أكبر العلامات. 84 00:04:04,779 --> 00:04:05,820 وأنه سيتم إلحاق إليه. 85 00:04:05,820 --> 00:04:06,750 لن الكتابة فوقه. 86 00:04:06,750 --> 00:04:09,770 حتى إذا كنت تحتاج إلى تشغيل متعددة برامج ونوع من الحفاظ 87 00:04:09,770 --> 00:04:13,170 تتبع ما كل منهم يعود لكم في الملف، 88 00:04:13,170 --> 00:04:14,190 هذا هو وسيلة للقيام بذلك. 89 00:04:14,190 --> 00:04:17,231 إذا كنت لا تهتم ما في الملف الخاص بك ولقد سمح لها أن تكون الكتابة، 90 00:04:17,231 --> 00:04:19,204 يمكنك فقط استخدام واحد من أكبر. 91 00:04:19,204 --> 00:04:20,600 فهل يعقل أن الجميع؟ 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> الجمهور: مثل نقطة خفض مرحبا أكبر من إخراج النص نقطة، مثل مرتين، 94 00:04:31,140 --> 00:04:34,030 انها سوف تظهر فقط فقط على الانتاج نقطة النص على time-- الثانية 95 00:04:34,030 --> 00:04:34,810 >> رئيس 1: الحق. 96 00:04:34,810 --> 00:04:40,450 لذلك سيكون أساسا مجرد تماما الكتابة ما كان هناك لتبدأ. 97 00:04:40,450 --> 00:04:44,260 إذا كان هذا الملف هنا، و output.text بالفعل 98 00:04:44,260 --> 00:04:48,230 موجودا، أساسا ما تسمونه ذلك مرة أخرى مع أكبر واحد 99 00:04:48,230 --> 00:04:51,920 مما يمكنك مجرد التفكير في الأمر كما مثل ذلك استبدال الملف. 100 00:04:51,920 --> 00:04:54,824 مثل عندما كنت تقوم بحفظ كلمة وثيقة لم باستثناء ما، 101 00:04:54,824 --> 00:04:57,365 واصلتم نفس الاسم، و ذلك بالكتابة تماما it-- 102 00:04:57,365 --> 00:04:58,680 هذا هو نفس النوع من الشيء. 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 أي شخص لديه أي أسئلة حول مجرد إخراج للملف؟ 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 رهيبة. 107 00:05:05,550 --> 00:05:11,440 >> لذلك من الواضح، إذا كنت عكس السهم الاتجاه، فإنه يمكن القيام الإدخال. 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 حتى عندما كان يا رفاق مثل قيصر أو Visioneer 110 00:05:19,960 --> 00:05:23,195 وكان لديك لإدخال شيء، هل كان لديك حجة سطر الأوامر 111 00:05:23,195 --> 00:05:24,960 أن مدخلات فعلا. 112 00:05:24,960 --> 00:05:27,410 وهذه طريقة أخرى للقيام بذلك. 113 00:05:27,410 --> 00:05:30,520 وذلك بدلا من الانتظار لموجه الأوامر، 114 00:05:30,520 --> 00:05:33,800 مثل عند طلب الخاص بك رسالة من قيصر أو Visioneer، 115 00:05:33,800 --> 00:05:36,490 إذا كان لديك ملف نصي التي كان رسالتك، 116 00:05:36,490 --> 00:05:38,280 هل يمكن أن مجرد كتابته في ذلك. 117 00:05:38,280 --> 00:05:44,930 >> حتى لو كان هذا مثل نقطة خفض قيصر 3 أقل من السهم إدخال النص، الذي 118 00:05:44,930 --> 00:05:47,240 هي رسالتك، أن سيرشح نفسه على ما يرام. 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 عندما برنامج قيصر بك فعلا طلب مدخلات من المستخدم، 121 00:05:54,020 --> 00:05:57,360 كان يمكن أن يكون بالفعل ل كنت قد كتبته في هذا الملف. 122 00:05:57,360 --> 00:05:58,830 هذا هو مجرد وسيلة أخرى. 123 00:05:58,830 --> 00:06:02,445 مجرد عكس output-- فقط لإدخال البيانات الخاصة بك. 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> ثم آخر واحد هو أنبوب. 126 00:06:06,680 --> 00:06:07,780 حتى تبرد هذا المرء جميلة. 127 00:06:07,780 --> 00:06:09,890 لأنه يسمح لك ل أخذ الناتج واحد 128 00:06:09,890 --> 00:06:13,695 برنامج ووضعها كما مدخل إلى برنامج آخر. 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 أنا لا أعرف إذا كان أي منكم لعب مع فك 131 00:06:18,630 --> 00:06:20,590 قد يكون هذا CS50 نظرا للكم، ولكن سيكون 132 00:06:20,590 --> 00:06:27,380 تسمح لك أن تأخذ بعض العينات ملف، اكتبه في التشفير الخاص بك، 133 00:06:27,380 --> 00:06:30,350 ثم من هناك اكتب هذا في فك التشفير الخاص بك 134 00:06:30,350 --> 00:06:32,470 للتأكد من أنه تبين نفسها. 135 00:06:32,470 --> 00:06:34,050 حتى انها نوع من مثل ثلاثية الحلقة. 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 لأنها تذهب. 138 00:06:39,423 --> 00:06:41,785 >> الجمهور: إذا كان برنامج له إسهامات متعددة، 139 00:06:41,785 --> 00:06:47,646 هل هناك طريقة لمعرفة ما الذي المدخلات استخدام ملف نصي أو الإخراج؟ 140 00:06:47,646 --> 00:06:49,325 >> رئيس 1: من لديه مدخلات متعددة. 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 أيا كان ملف input-- الخاص بك عندما يكون طلب الإدخال الذي أول مرة، انها 143 00:07:00,430 --> 00:07:03,240 سوف نفترض، كما أعتقد، أنه من الذهاب إلى الأنابيب في الملف بأكمله. 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 حتى إذا كان لديك مدخلات متعددة، كنت ستكون الأنابيب في ملفات متعددة. 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 حتى إذا كنت طالبا للرسائل ثلاث مرات في التعليمات البرمجية، 148 00:07:12,390 --> 00:07:15,230 كنت على وشك أن تضع في ثلاثة ملفات مختلفة. 149 00:07:15,230 --> 00:07:15,980 ويحصل مجنون. 150 00:07:15,980 --> 00:07:18,188 ويجب أن لا يكون ل تقلق بشأن ذلك الآن. 151 00:07:18,188 --> 00:07:19,150 ولكن هذه هي الفكرة. 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> لذلك نعم، والأنابيب يتم إخراج عادل واحد يستخدم برنامج مدخلات أخرى. 154 00:07:26,822 --> 00:07:27,665 الجميع جيدة هناك؟ 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 بارد. 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 موافق. 159 00:07:30,932 --> 00:07:32,890 ربما لن يكون أن تفعل الكثير معها. 160 00:07:32,890 --> 00:07:35,670 ولكن يجب أن نفهم الطرق التي يمكنك استخدام هذا. 161 00:07:35,670 --> 00:07:38,910 وهناك بعض الحالات التي قد ترغب في استخدامها. 162 00:07:38,910 --> 00:07:44,590 >> حتى ملف I / O-- أنا أعرف ما كنت saying-- اعتدنا على قراءة من 163 00:07:44,590 --> 00:07:50,500 والكتابة على الشاشة لدينا هناك، الذي هو المعيار في ومعيار خارج. 164 00:07:50,500 --> 00:07:54,370 وهذا ما كان يا رفاق به منذ بداية الدرجة هنا. 165 00:07:54,370 --> 00:07:58,220 ولكن يمكنك أيضا قراءة وكتابة الملفات، وهو كل ملف I / O-- ذلك تقديم المدخلات، 166 00:07:58,220 --> 00:07:59,850 الإخراج هو كل ما ترمز إليه. 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 ولذلك فإن هذا يعني أساسا أن يمكنك تخزين البيانات الخاصة بك الآن. 169 00:08:04,360 --> 00:08:08,460 >> عند طباعته فقط ل الشاشة، انها ذهبت أساسا، أليس كذلك؟ 170 00:08:08,460 --> 00:08:12,507 بمجرد جعل "مرحبا العالم "وتشغيل" أهلا بالعالم " 171 00:08:12,507 --> 00:08:14,090 فإنه يطبع "مرحبا العالم" إلى الشاشة. 172 00:08:14,090 --> 00:08:16,370 ولكنك لا تستطيع أن تفعل حقا أي شيء معها من هناك. 173 00:08:16,370 --> 00:08:18,950 إذا قمت بتخزين في النص ملف، ثم فجأة 174 00:08:18,950 --> 00:08:22,789 لديك هذه البيانات التي كنت يسمح التلاعب أو وضعه في ملف، 175 00:08:22,789 --> 00:08:24,080 أو وضعه في البرنامج في وقت لاحق. 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 أحد الأسباب لماذا نفعل هذا هو مجرد 178 00:08:29,290 --> 00:08:31,560 باعتبارها وسيلة لتخزين البيانات لاستخدامها لاحقا. 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> لدي بضعة خطوات من هنا مجرد المشي من خلال معيار 181 00:08:37,279 --> 00:08:39,450 I / O. في خطوة واحدة، ل تحتاج إلى إنشاء مرجع 182 00:08:39,450 --> 00:08:43,480 إلى ملف مع جميع قبعات للملف نجم. 183 00:08:43,480 --> 00:08:45,740 بحيث يخلق مؤشر إلى ملف. 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 حتى ذلك الحين تريد فتحه. 186 00:08:49,650 --> 00:08:52,940 ونقول لكم، حرفيا، ملف عادل يساوي FOPEN. 187 00:08:52,940 --> 00:08:57,400 وهذا يحدث لإرجاع مؤشر الملف الذي فتحته للتو. 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 رأيت بضع لك الرجال في ساعات العمل. 190 00:09:01,460 --> 00:09:07,400 >> ولكن واحدة من الأشياء هي مؤشرات remember-- 191 00:09:07,400 --> 00:09:10,409 يمكن أن تكون بعض العناوين أو باطل، أليس كذلك؟ 192 00:09:10,409 --> 00:09:12,700 إذا كان لدينا حالة من أي وقت مضى شيء يمكن أن يعود لاغية، 193 00:09:12,700 --> 00:09:14,990 ماذا علينا أن نفعل قبل أن أبدا استخدامه؟ 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 نحن بحاجة لمعرفة ما اذا كان انها باطلة أم لا، أليس كذلك؟ 196 00:09:19,000 --> 00:09:23,600 لأن البعض منكم ربما كان المشكلة حيث أيا كان الكائن 197 00:09:23,600 --> 00:09:26,110 تم إعادتهم في الاختراق كانت فارغة. 198 00:09:26,110 --> 00:09:28,170 حاولت أداء بعض الدالة على ذلك. 199 00:09:28,170 --> 00:09:29,770 وانتقد الموقع جهاز الكمبيوتر الخاص بك. 200 00:09:29,770 --> 00:09:30,725 أليس كذلك؟ 201 00:09:30,725 --> 00:09:33,640 أراهن بضع لك قد يكون لهذه المسألة. 202 00:09:33,640 --> 00:09:38,890 >> حتى مع FOPEN، FOPEN إما عودة مؤشر إلى ملف، 203 00:09:38,890 --> 00:09:41,200 أو إذا كان هناك شيء يذهب على نحو خاطئ، انها سوف تعود فارغة. 204 00:09:41,200 --> 00:09:45,980 لذا عليك دائما أن تحقق أنه لم يعد لاغيا 205 00:09:45,980 --> 00:09:47,880 قبل محاولة القيام بأي شيء آخر. 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 هذا هو مثل نموذج قياسي أن وأنت تسير في حاجة إلى هنا. 208 00:09:51,974 --> 00:09:54,390 إذا كان هناك أي وقت مضى فرصة ل شيء يمكن أن يعود لاغية، 209 00:09:54,390 --> 00:09:56,590 تحقق للتأكد من ذلك لا قبل المتابعة. 210 00:09:56,590 --> 00:09:58,911 خلاف ذلك، وأنت تسير للحصول على أخطاء الموقع جميلة. 211 00:09:58,911 --> 00:10:00,410 ولا أحد يحب أن التعامل مع هؤلاء. 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> لذلك كما نرى هنا، فإن الحجة الأولى هو مجرد المسار إلى الملف. 214 00:10:06,410 --> 00:10:09,380 حالة عدم وجود هذا الملف، انها تسير لإنشاء هذا الملف. 215 00:10:09,380 --> 00:10:10,713 وانها فقط ستكون فارغة. 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 ثم الوسيطة الثانية هو الوضع الذي تريده. 218 00:10:13,080 --> 00:10:14,610 نريد أن نقرأ عن هذا الملف؟ 219 00:10:14,610 --> 00:10:15,560 هل تريد أن تكتب عنه؟ 220 00:10:15,560 --> 00:10:16,476 هل تريد إلحاق؟ 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 ذلك في الواقع ما كنت للتو said-- حالة عدم وجود الملف 223 00:10:20,670 --> 00:10:23,400 وكنت تحاول قراءتها من ذلك، فإنه سيكون لرمي خطأ. 224 00:10:23,400 --> 00:10:26,890 إذا كان الملف name-- إذا أحب file.text لا وجود له حتى الآن 225 00:10:26,890 --> 00:10:29,250 وكنت أريد أن أكتب لذلك، فإنه سيخلق 226 00:10:29,250 --> 00:10:33,110 ملف فارغ يسمى file.text بالنسبة لك. 227 00:10:33,110 --> 00:10:36,612 وإذا كنت ترغب في إلحاق، يجب عليك أن تفعل الشيء نفسه. 228 00:10:36,612 --> 00:10:38,081 هل هذا يعقل؟ 229 00:10:38,081 --> 00:10:40,580 إذا كنت تحاول قراءتها من ملف غير موجود بعد، 230 00:10:40,580 --> 00:10:41,590 انها سوف رمي خطأ. 231 00:10:41,590 --> 00:10:44,340 خلاف ذلك، فإنه سيتم إنشاء ملف لتفعل ما تريد لذلك. 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 بارد. 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 الآن يمكننا أن نقرأ من الملف. 236 00:10:48,880 --> 00:10:52,570 وهذا هو مجرد نوع من الذهاب من خلال وظائف مختلفة 237 00:10:52,570 --> 00:10:58,980 أن لدينا لملف I / O. هذه الإرادة يكون ضروريا في PSET هذا الأسبوع، 238 00:10:58,980 --> 00:11:00,505 إذا كنت أتذكر بشكل صحيح. 239 00:11:00,505 --> 00:11:02,880 نعم، قطعا سيكون الضرورة في PSET هذا الأسبوع. 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 حتى fgetc إرجاع الحرف التالي. 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgets فقط إرجاع سطر من النص. 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 فإنه سيعود كل شيء إلى خط جديد، وسوف كسر. 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 حتى fread يقرأ بعض عدد البايتات وأماكن لهم 248 00:11:18,700 --> 00:11:20,700 في صفيف، الذي هو شيء كنت قد 249 00:11:20,700 --> 00:11:25,485 تريد أن تفعل مع إعادة size--- قد يكون مفيدا. 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> كم من الناس قد قرأت المواصفات PSET، بالمناسبة؟ 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 موافق. 254 00:11:32,261 --> 00:11:32,760 [غير مسموع] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> رئيس 1: OK. 257 00:11:36,580 --> 00:11:37,530 حسنا. 258 00:11:37,530 --> 00:11:41,940 بالتأكيد قراءة that-- انها PSET متعة. 259 00:11:41,940 --> 00:11:51,320 تحصل لاستعادة الذاكرة المحذوفة card-- مثيرة حقا عندما يعمل. 260 00:11:51,320 --> 00:11:54,100 ولكن بالتأكيد، أن تبدأ القراءة. 261 00:11:54,100 --> 00:11:56,280 يأتي الحديث لي إذا كنت لديك أسئلة حول هذا الموضوع. 262 00:11:56,280 --> 00:11:59,290 >> حسنا، كما كنت أقول، fread قراءة عدد معين من وحدات البايت. 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 هذا بعض رقم التعسفي ان كنت تريد الذهاب لتعيين. 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 ثم fseek التحركات فقط لموقف معين. 267 00:12:08,260 --> 00:12:11,150 لذلك ربما كنت لا تهتم حول بايت 10 القادمة. 268 00:12:11,150 --> 00:12:12,880 كنت ترغب فقط في القفز إلى الأمام. 269 00:12:12,880 --> 00:12:14,030 أنت لا تبالي تلك. 270 00:12:14,030 --> 00:12:16,280 كنت ترغب في قراءة ابتداء من الساعة 11 بايت. 271 00:12:16,280 --> 00:12:18,252 fseek يسمح لك أن تفعل ذلك. 272 00:12:18,252 --> 00:12:20,710 لذلك يسمح لك أن تكون انتقائية حول ما كنت تقرأ. 273 00:12:20,710 --> 00:12:25,880 لأن fgetc، fgets، وfread قراءة من مكان معين في الملف. 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> وهناك طريقة للتفكير في ذلك هو إذا كان هذا هو ملف لدينا، عند فتحه لأول مرة، 276 00:12:35,090 --> 00:12:41,140 لديك هذا الموقف في ملف الذي يبدأ في البداية. 277 00:12:41,140 --> 00:12:45,040 كلما استدعاء fgetc، fgetf، أو fread، 278 00:12:45,040 --> 00:12:48,875 انها سوف تبدأ من هذا الموقف علامة. 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 دعونا نقول لكم نريد فقط أن تقرأ هذا جزء من الذاكرة أكثر من هنا. 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 لا يمكنك الاتصال فقط. 283 00:12:57,960 --> 00:13:02,430 لديك للحصول على أكثر من هنا ثم قرأ من هناك 284 00:13:02,430 --> 00:13:06,540 أو القراءة، يحصل، أو getc، اعتمادا على ما تريد. 285 00:13:06,540 --> 00:13:09,310 لذلك تسعى يسمح فقط لأنك ل تخطي أجزاء من الذاكرة. 286 00:13:09,310 --> 00:13:11,590 وهذا هو فقط بهذه الطريقة يمكنك تخطي الأشياء 287 00:13:11,590 --> 00:13:14,012 دون قراءتها في المخزن الخاص بك. 288 00:13:14,012 --> 00:13:15,470 فهل يعقل أن الجميع؟ 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> ومن الواضح أن هناك الكثير من here-- مواز 291 00:13:24,780 --> 00:13:27,780 إعادة توجيه الإنتاج لدينا، أو المدخلات، كنت قد قرأت والكتابة. 292 00:13:27,780 --> 00:13:31,800 fputc حتى يكتب فقط حرف في الملف. 293 00:13:31,800 --> 00:13:33,655 fputs يكتب السطر. 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 Fprintf بطباعة الناتج تنسيقها. 296 00:13:37,420 --> 00:13:41,190 حتى إذا كان لديك علامات التبويب، أو الفضاء، أو غيرها. 297 00:13:41,190 --> 00:13:44,180 ثم يكتب بعض fwrite صفيف من البايت إلى ملف. 298 00:13:44,180 --> 00:13:48,860 لذلك هذا هو نفس الطريق وfread fwrite هي مشابهة 299 00:13:48,860 --> 00:13:57,550 fgets opposites--، fputs، و ثم الكثير fputc وfgetc-- 300 00:13:57,550 --> 00:14:00,710 ، أشياء سريعة لمجنونة. 301 00:14:00,710 --> 00:14:05,300 >> مجرد نوع من الحفاظ على هذا handy-- سيكون لديك أوقات مختلفة 302 00:14:05,300 --> 00:14:08,680 حيث ربما كنت ترغب فقط حرف واحد في وقت واحد. 303 00:14:08,680 --> 00:14:09,890 ربما كنت ترغب في خط كامل. 304 00:14:09,890 --> 00:14:14,320 مع pset-- قاموسك وهو في اثنين psets، 305 00:14:14,320 --> 00:14:19,690 أعتقد، نقدم لكم ككل قاموس في شكل النص 306 00:14:19,690 --> 00:14:22,252 الذي لديه كل كلمة يفصل بينهما خط. 307 00:14:22,252 --> 00:14:24,210 لذلك إذا أردت قراءة في كلمة واحدة في كل مرة، 308 00:14:24,210 --> 00:14:31,769 ما يمكن أن تستخدمها إذا كنت تقرأ وانهم منفصلون جميعا على الخطوط الجديدة، 309 00:14:31,769 --> 00:14:33,310 وتريد فقط كلمة واحدة في وقت واحد؟ 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> الجمهور: Fgets 312 00:14:36,040 --> 00:14:36,748 >> رئيس 1: الحق. 313 00:14:36,748 --> 00:14:39,960 Fgets-- لأن ذلك يعود كل ما هو على سطر واحد. 314 00:14:39,960 --> 00:14:42,750 وإذا كانت كل كلمة فيها خط الخاصة، يمكننا استخدام fgets. 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 بارد. 317 00:14:45,010 --> 00:14:47,290 هل هذا يعقل، الجميع؟ 318 00:14:47,290 --> 00:14:48,020 بارد؟ 319 00:14:48,020 --> 00:14:50,020 نعم، نحن في طريقنا للوصول الى الجزء الممتع مع مؤشرات 320 00:14:50,020 --> 00:14:51,728 قريبا جدا، حيث كنت وصول الى القيام ببعض الرياضيات. 321 00:14:51,728 --> 00:14:52,776 وانها سوف تكون كبيرة. 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> آخر step-- إغلاق الملف الخاص بك. 324 00:14:57,740 --> 00:15:01,090 مع أشياء كثيرة هنا، واحد من النماذج لدينا 325 00:15:01,090 --> 00:15:03,550 وإذا كان يمكن العودة لاغية، وتحقق لاغية. 326 00:15:03,550 --> 00:15:06,160 إذا قمت بفتح شيء، كنت إغلاقه بشكل أفضل. 327 00:15:06,160 --> 00:15:10,419 موافق، لذلك كنت لم تفعل حتى كنت إلا إذا كنت قد فعلت إغلاقه. 328 00:15:10,419 --> 00:15:12,585 نوع من مثل الأمر لم ينته حتى تغني للسيدة الدهون. 329 00:15:12,585 --> 00:15:14,130 هذا مثل إغلاق الملف الخاص بك. 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 كما جاء هنا، فقط أن أكرر، دائما 332 00:15:19,190 --> 00:15:21,750 فتح الملف الخاص بك قبل كنت القراءة أو الكتابة إليها. 333 00:15:21,750 --> 00:15:24,450 ودائما إغلاقه إذا كنت قد قمت بفتحها. 334 00:15:24,450 --> 00:15:25,460 كل الحق؟ 335 00:15:25,460 --> 00:15:25,960 بارد. 336 00:15:25,960 --> 00:15:26,835 >> حتى هنا مثال على ذلك. 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 حتى tiny-- أنا لا أعرف ما إذا كنت يمكن الرجال يرون ذلك جيدا. 339 00:15:34,330 --> 00:15:36,805 ولو استطعنا زيادة سطوع بطريقة أو بأخرى. 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 اسمحوا لي فعلا القيام بذلك إذا كنت تستطيع. 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 حسنا، لا يمكنك حقا الرجال نرى أن في كل شيء، يمكن لك؟ 344 00:15:51,470 --> 00:15:52,905 حسنا، نحن في طريقنا للقيام بذلك، ثم. 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [غير مسموع] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> أفترض هذا هو أفضل بكثير لنرى. 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 يمكن لأي شخص رؤية أين بلادي ذهب الفأر هو السؤال؟ 351 00:17:19,455 --> 00:17:22,837 آه، هناك كان is-- ما تناضل! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> موافق. 354 00:17:49,520 --> 00:17:53,845 في الأساس، ينبغي أن يكون رفاق النوع فكرة هذا ما يقوم به. 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 انها ليست مثالية. 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 ولكن أنا أفضل أن تفسير ذلك من قضاء المزيد من الوقت في محاولة لتهيئته بشكل صحيح. 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 في الأساس، وكما ترون هنا، نبدأ مع الملف مفتوحا. 361 00:18:07,280 --> 00:18:09,620 ولدينا بعض ملف قاعدة البيانات التي نحن 362 00:18:09,620 --> 00:18:12,300 فتح تقول انها طلابنا. 363 00:18:12,300 --> 00:18:14,020 ونحن في طريقنا إلى الكتابة إليه. 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 وذلك بطبيعة الحال، والعودة فارغة. 366 00:18:17,720 --> 00:18:19,650 لذلك علينا أن تحقق لاغية. 367 00:18:19,650 --> 00:18:22,930 ثم إذا لم يكن لاغية، ونحن من خلال الذهاب. 368 00:18:22,930 --> 00:18:25,660 وكما ترون، نحن حلقات من هنا. 369 00:18:25,660 --> 00:18:26,960 هناك طلاب. 370 00:18:26,960 --> 00:18:30,520 الطلاب هو تجزئة يعرف بأنه الثلاثة. 371 00:18:30,520 --> 00:18:34,060 وما نفعله هو أننا الطباعة إلى ملف، أليس كذلك؟ 372 00:18:34,060 --> 00:18:36,975 فما نحن الطباعة إلى ملف لدينا؟ 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> الجمهور: إن العشرات التي هي في المصفوفة؟ 375 00:18:48,906 --> 00:18:49,680 >> رئيس 1: نعم. 376 00:18:49,680 --> 00:18:50,980 الدرجات التي هي في وarray-- بالضبط. 377 00:18:50,980 --> 00:18:53,050 لذلك نحن فتح هذا ملف قاعدة البيانات، والتي 378 00:18:53,050 --> 00:18:56,040 أفترض هو نوع قاعدة الدرجات. 379 00:18:56,040 --> 00:19:01,100 ونحن مجرد طبع و عشرات من كل طالب لهذا الملف. 380 00:19:01,100 --> 00:19:02,140 بارد؟ 381 00:19:02,140 --> 00:19:02,640 الخير. 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 رهيبة. 384 00:19:04,310 --> 00:19:05,100 موافق. 385 00:19:05,100 --> 00:19:06,950 دعونا نعود علي: 386 00:19:06,950 --> 00:19:08,646 >> الجمهور: لدي سؤال سريع. 387 00:19:08,646 --> 00:19:11,570 هو printf ليس في لحلقة؟ 388 00:19:11,570 --> 00:19:12,870 هذا فقط في حال حلقة؟ 389 00:19:12,870 --> 00:19:14,370 رئيس 1: لا، انها لفي الحلقة. 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 لا استطيع ان ارى بلدي الماوس بشكل جيد جدا هنا. 392 00:19:18,810 --> 00:19:21,359 لذلك أنا تكافح ل شكل هذا صحيح. 393 00:19:21,359 --> 00:19:22,525 يجب أن يكون قد انتهى هذه الفئة. 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 يجب أن يكون أسفل هنا. 396 00:19:25,130 --> 00:19:26,605 وهذا هو ما لديك في الحلقة. 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 هناك. 399 00:20:11,180 --> 00:20:12,160 الآن انها جميلة. 400 00:20:12,160 --> 00:20:16,720 ذلك أن الكيفية التي ينبغي be-- باستثناء لذلك قوس الماضي أنني رفضت. 401 00:20:16,720 --> 00:20:17,220 موافق. 402 00:20:17,220 --> 00:20:19,491 فهل يعقل أن الجميع؟ 403 00:20:19,491 --> 00:20:19,990 موافق. 404 00:20:19,990 --> 00:20:23,750 ونحن في طريقنا للانتقال إلى الشيء التالي then-- 405 00:20:23,750 --> 00:20:26,180 وهو، في الواقع، وأنت تسير بحاجة إلى أن نرى رمز. 406 00:20:26,180 --> 00:20:28,370 لذلك أنا مجرد الذهاب ل نسخ إلى أن أكثر من الآن. 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 موافق. 409 00:20:32,000 --> 00:20:35,110 لذلك أنا ذاهب الى تبين لكم رفاق هذا الرمز. 410 00:20:35,110 --> 00:20:38,240 وأنا أريد منك أن محاولة والشكل ما يفترض أن تفعله. 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> حتى تعطى that-- اتخاذ دقيقة أو نحو ذلك. 413 00:20:52,480 --> 00:20:54,440 ومحاولة معرفة ما يجري هنا. 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> أي أفكار؟ 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> ونحن نعلم أن لدينا اثنين على الأقل الحجج في سطر الأوامر، أليس كذلك؟ 418 00:22:12,470 --> 00:22:16,270 أفترض احدة منها ستكون أن [غير مسموع] من برنامجنا 419 00:22:16,270 --> 00:22:17,530 ثم شيء آخر. 420 00:22:17,530 --> 00:22:19,980 لأنه إذا كان [غير مسموع] أقل من اثنين، نحن يصيح عليهم. 421 00:22:19,980 --> 00:22:21,140 أليس كذلك؟ 422 00:22:21,140 --> 00:22:25,300 ومن الاستخدام، يبدو انها ستكون نوعا من الملف. 423 00:22:25,300 --> 00:22:26,260 نحن جميعا نتفق على ذلك؟ 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 حتى الآن، ما هو حلقة تفعل؟ 426 00:22:31,570 --> 00:22:32,570 ما كان يمر؟ 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> الجمهور: جميع الملفات. 429 00:22:36,449 --> 00:22:37,240 رئيس 1: بالضبط. 430 00:22:37,240 --> 00:22:39,650 انه سيكون من خلال جميع الملفات التي قمنا المدخلات هناك. 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 لذلك لكل ملف، انها فتح بعض سلسلة هناك. 433 00:22:46,040 --> 00:22:47,560 انها تفتح هذا الملف. 434 00:22:47,560 --> 00:22:48,060 أليس كذلك؟ 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 وانها القراءة منه. 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 وبطبيعة الحال، والتحقق ما اذا كان باطلا. 439 00:22:55,540 --> 00:22:57,220 ثم انها الطباعة. 440 00:22:57,220 --> 00:23:01,460 اذا كان لاغيا، انها مجرد قول لنا أن هذا ليس ملف موجود. 441 00:23:01,460 --> 00:23:04,290 لأن تذكر، مع قراءة ملف لديه في الوجود. 442 00:23:04,290 --> 00:23:04,810 أليس كذلك؟ 443 00:23:04,810 --> 00:23:06,870 مع الكتابة وإلحاق، يمكنك أن تفلت من العقاب. 444 00:23:06,870 --> 00:23:08,970 ولكن مع القراءة، ملف لديه في الوجود. 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> ثم إذا كان لا وجود لها، ماذا نفعل هنا؟ 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 دعونا نبدأ هنا. 449 00:23:15,780 --> 00:23:18,815 ما هذا do-- هذا الحرف الأول. 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 ماذا يفعل؟ 452 00:23:21,790 --> 00:23:24,100 انه يحصل على حرف واحد، أليس كذلك؟ 453 00:23:24,100 --> 00:23:25,400 فما هو هذا به؟ 454 00:23:25,400 --> 00:23:26,775 انها تحصل على الحرف الأول. 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 أحد يعرف EOF؟ 457 00:23:30,200 --> 00:23:31,170 >> الجمهور: نهاية الملف؟ 458 00:23:31,170 --> 00:23:32,680 >> رئيس 1: نهاية الملف-- بالضبط. 459 00:23:32,680 --> 00:23:35,310 حتى انها سوف تذهب من خلال الملف بأكمله، أليس كذلك؟ 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 وبعد ذلك يجري لتحديث من قبل الحصول على كل حرف لاحق. 462 00:23:40,780 --> 00:23:41,565 أليس كذلك؟ 463 00:23:41,565 --> 00:23:43,636 وما كان يفعل؟ 464 00:23:43,636 --> 00:23:44,760 الجمهور: أن وضع in-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> رئيس 1: طباعة Putchar لشاشة التوقف الخاصة بك. 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [غير مسموع] الحرف. 469 00:23:51,950 --> 00:23:54,300 ثم عندما [غير مسموع] هذا سوف يغلق الملف. 470 00:23:54,300 --> 00:23:57,370 >> الجمهور: هل لا تحتاج إلى [؟ آخر؟ ؟] 471 00:23:57,370 --> 00:23:59,005 >> رئيس 1: ليس بالضرورة. 472 00:23:59,005 --> 00:24:01,480 أعني، انها ضمنية نوع من هذا. 473 00:24:01,480 --> 00:24:06,780 لأن هذا يعود، رغم ذلك، ما دام لأن ذلك لا يصاب هذا، وكنت على ما يرام. 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 أعني أنها ربما جيد ممارسة للقيام آخر. 476 00:24:10,250 --> 00:24:15,755 لكن آخر ليس دائما الضرورة خاصة 477 00:24:15,755 --> 00:24:17,610 إذا كان لديك شيء مثل هذه العودة، التي 478 00:24:17,610 --> 00:24:20,640 يعني أنه في هذه الحالة إذا كان المصيد ذلك، البرنامج هو الذهاب الى نهاية 479 00:24:20,640 --> 00:24:21,850 وأنه سوف لن تحصل على هذا. 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 انها اكثر للحالة حيث كنت ليس بالضرورة عودته شيء. 482 00:24:29,190 --> 00:24:31,370 لأنه إذا لم يكن هذا العودة أي شيء، 483 00:24:31,370 --> 00:24:34,430 فإن هذا يعني أنه إذا كان هذا صحيحا، ان بقية هذا لا تزال تعمل. 484 00:24:34,430 --> 00:24:36,138 وفي هذه الحالة، عليك تريد كاذبة. 485 00:24:36,138 --> 00:24:38,240 اذا كان عودته، و إنهاء البرنامج الخاص بك، 486 00:24:38,240 --> 00:24:41,960 وآخر ليس من الضروري فقط الوقت، اعتمادا على السياق. 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 يعقوب، هل لديك سؤال؟ 489 00:24:44,375 --> 00:24:46,100 الجمهور: نعم. 490 00:24:46,100 --> 00:24:49,300 حتى لا fgetc الحصول على الحرف التالي؟ 491 00:24:49,300 --> 00:24:50,734 كيف تزيد من الطابع؟ 492 00:24:50,734 --> 00:24:51,400 رئيس 1: نعم. 493 00:24:51,400 --> 00:24:52,774 حتى fgetc يحصل على الحرف التالي. 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 يمكنك التفكير في الأمر مثل C ++ في الشعور. 496 00:24:56,866 --> 00:24:58,350 >> الجمهور: فما كان EOF؟ 497 00:24:58,350 --> 00:25:00,877 >> رئيس 1: EOF هو نهاية الملف. 498 00:25:00,877 --> 00:25:03,960 انها مجرد علامة التي تمكنك من معرفة ان كنت في نهاية الملف. 499 00:25:03,960 --> 00:25:06,742 لذلك هذا هو الذهاب الى طباعة لمعيار الخاص بها. 500 00:25:06,742 --> 00:25:08,950 ثم انها سوف تغلق ملف عندما يكون القيام به. 501 00:25:08,950 --> 00:25:10,700 ثم دعونا نذهب ل ملف المقبل، أليس كذلك؟ 502 00:25:10,700 --> 00:25:12,660 هكذا عموما، ماذا يفعل هذا البرنامج؟ 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [غير مسموع] 505 00:25:16,090 --> 00:25:16,900 >> رئيس 1: نعم. 506 00:25:16,900 --> 00:25:18,770 فإنه يطبع للتو كل شيء هناك. 507 00:25:18,770 --> 00:25:23,270 حتى CAT إذا كنت الرجال قد استخدمت من أي وقت مضى ثم اسم بعض الملف-- 508 00:25:23,270 --> 00:25:26,240 أنا لا أعرف إذا كان أي من لديك من أي وقت مضى فعلت ذلك في الطرفية. 509 00:25:26,240 --> 00:25:29,630 ولكن إذا كنت من أي وقت مضى استخدام قيادة CAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 ثم مهما كان ملف لديك there-- عليه 511 00:25:31,880 --> 00:25:37,260 يطبع بها لمحطة الخاص بك، والتي يمكن أن تكون فائقة مفيد لبعض الأشياء. 512 00:25:37,260 --> 00:25:38,746 أنا استخدامها كثيرا. 513 00:25:38,746 --> 00:25:40,120 فهل يعقل أن الجميع؟ 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 بارد؟ 516 00:25:42,100 --> 00:25:46,530 >> موافق جدا مهمتك now-- إما عن طريق نفسك أو مع الناس في جميع أنحاء you-- 517 00:25:46,530 --> 00:25:54,930 هو مجرد كتابة برنامج بسيط التي سوف أكتب فقط "مرحبا، العالم!" 518 00:25:54,930 --> 00:25:56,255 إلى ملف. 519 00:25:56,255 --> 00:26:00,215 >> [غير مسموع] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [غير مسموع] 522 00:26:57,040 --> 00:26:59,248 >> رئيس 1: كنت مثل، فعل أفعل ذلك الأسبوع الماضي بشكل سيء؟ 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 لم أكن أعتقد أنه كان سيئا. 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 أنا سعيد لأنك هنا فقط. 527 00:27:03,520 --> 00:27:04,655 انها حقا يجعلني سعيدا. 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 أنا فتاة من متع بسيطة. 530 00:27:10,160 --> 00:27:11,688 أود فقط عندما يحضر لي الباب. 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 لذلك أنا بدأت للتو هذا ل يا رفاق حتى نتمكن من الكود معا. 533 00:27:18,270 --> 00:27:22,290 أنا لا أحب وضع أي شخص على المكان إلا إذا كنت تريد أن تكون. 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> الجمهور: بالنسبة للمسابقة، والقيام لدينا لكتابة البرنامج؟ 536 00:27:30,086 --> 00:27:33,260 >> رئيس 1: قد يطلب منك ل كتابة برامج بسيطة باليد. 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 نعم. 539 00:27:36,590 --> 00:27:38,510 >> الجمهور: إن المسابقة هي الاسبوع المقبل، أليس كذلك؟ 540 00:27:38,510 --> 00:27:40,108 >> رئيس 1: إن مسابقة هو يوم الأربعاء المقبل. 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 وهذا يعني ان هناك [جميل؟ CSE؟] الدرجات الحزب بعد ذلك، والتي 543 00:27:43,730 --> 00:27:50,390 يعني أنك سوف تحصل على علاماتك العودة أن night-- في وقت ما؟ 544 00:27:50,390 --> 00:27:50,890 من يدري؟ 545 00:27:50,890 --> 00:27:51,973 لكنها ستكون في تلك الليلة. 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> حسنا. 548 00:28:02,855 --> 00:28:04,250 كيف نريد أن نبدأ هذا؟ 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 سأعطيك ويبدأ hint-- مع هذا. 551 00:28:09,630 --> 00:28:11,455 >> الجمهور: لديك لفتح ملف. 552 00:28:11,455 --> 00:28:12,250 >> رئيس 1: نعم. 553 00:28:12,250 --> 00:28:14,060 فماذا تريد أن نسمي هذا؟ 554 00:28:14,060 --> 00:28:16,150 هل تريد فقط أن نسميها "ملف"؟ 555 00:28:16,150 --> 00:28:17,480 دعونا تجعل من السهل. 556 00:28:17,480 --> 00:28:26,752 حتى fopen-- ما لدينا إخراج الاختبار سيكون؟ 557 00:28:26,752 --> 00:28:36,130 نسميها "مرحبا". 558 00:28:36,130 --> 00:28:37,810 وما هو الوضع لدينا؟ 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 ماذا نحن فاعلون لهذا الملف؟ 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> الجمهور: اقرأ. 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 كتابة. 565 00:28:44,900 --> 00:28:46,191 رئيس 1: نكتب عليه. 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 جميل. 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 موافق، لذلك لدينا هذا الملف الآن. 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 ماذا علينا أن نفعل؟ 572 00:28:56,212 --> 00:28:57,420 الجمهور: تحقق اذا كان لاغيا. 573 00:28:57,420 --> 00:28:59,820 رئيس 1: التحقق ما اذا كان null-- بالضبط. 574 00:28:59,820 --> 00:29:01,980 هذا ما أحب أن أسمع. 575 00:29:01,980 --> 00:29:05,930 يجب أن يكون تلقائيا، خاصة الى حد كبير من هذه النقطة. 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 إذا كنت تبدأ segfaulting، وربما كنت لم تحقق لاغية في مكان ما. 578 00:29:10,950 --> 00:29:12,480 تسع مرات من أصل عشرة، وهذا سيكون من الخطأ. 579 00:29:12,480 --> 00:29:15,400 حتى إذا كنت قد مجرد الحصول في عادة، دائما التحقق لو كان باطلا، 580 00:29:15,400 --> 00:29:18,150 حياتك ستكون لطيفة وeasy-- أو أسهل. 581 00:29:18,150 --> 00:29:19,480 >> حتى تحقق لمعرفة ما اذا كان باطلا. 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 حتى لو انها ليست لاغية، والتي هو ما يساوي الانفجار 584 00:29:24,820 --> 00:29:26,784 means-- لا null-- انها صالحة. 585 00:29:26,784 --> 00:29:27,700 ماذا نريد أن نفعل؟ 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 نحن نريد فقط لطباعة إلى ذلك الملف، أليس كذلك؟ 588 00:29:31,570 --> 00:29:32,923 وذلك ما نحن ذاهبون للاستخدام؟ 589 00:29:32,923 --> 00:29:34,092 >> الجمهور: Fprintf 590 00:29:34,092 --> 00:29:36,800 >> رئيس 1: Fprintf-- جميل. 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 وfprintf يأخذ اثنين حيث arguments-- انها تسير وماذا نريد المطبوعة. 593 00:29:44,000 --> 00:29:45,820 فما هو أول واحد؟ 594 00:29:45,820 --> 00:29:46,570 أين هو ذاهب؟ 595 00:29:46,570 --> 00:29:47,490 >> الجمهور: ملف. 596 00:29:47,490 --> 00:29:48,785 >> رئيس 1: انها تسير إلى ملف. 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 وماذا نريد المطبوعة؟ 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "مرحبا، العالم!" 601 00:29:58,065 --> 00:29:58,565 حسنا. 602 00:29:58,565 --> 00:30:03,670 لدينا thing-- آخر واحد نموذج آخر كبير هنا. 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 الجمهور: إغلاق. 605 00:30:05,145 --> 00:30:05,853 رئيس 1: إغلاق. 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 هناك تذهب. 608 00:30:10,540 --> 00:30:13,384 >> الجمهور: هل هذا يحدث إذا كان الملف هو باطل؟ 609 00:30:13,384 --> 00:30:15,050 رئيس 1: لا، هذا إذا لم تكن فارغة. 610 00:30:15,050 --> 00:30:16,881 الجمهور: أوه، لو كان not-- موافق. 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 لFOPEN ثم اثنين من الحجج التي تذهب في الداخل، 613 00:30:25,410 --> 00:30:27,655 ماذا تعني الوسيطة الأولى مرة أخرى؟ 614 00:30:27,655 --> 00:30:30,392 >> رئيس 1: والحجة هي تماما مثل اسم الملف 615 00:30:30,392 --> 00:30:31,350 الذي تريد الذهاب إليه. 616 00:30:31,350 --> 00:30:36,020 حتى بعد هذا يعمل، تفضلتم لدينا بعض ملف يسمى "مرحبا" 617 00:30:36,020 --> 00:30:38,320 التي "مرحبا، العالم" داخلها. 618 00:30:38,320 --> 00:30:38,820 هذا كل شيء. 619 00:30:38,820 --> 00:30:39,500 مجرد اسم. 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> الجمهور: وبما أنها كتابة، و ليس لديها ملف في الوجود بالفعل. 622 00:30:48,650 --> 00:30:49,675 غير أن ما قلته؟ 623 00:30:49,675 --> 00:30:50,410 >> رئيس 1: الحق. 624 00:30:50,410 --> 00:30:50,910 بالضبط. 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 إذا "مرحبا" كملف لا وجود له حتى الآن، فهو 627 00:30:55,839 --> 00:30:58,380 الذهاب لإنشاء ملف يسمى مرحبا "وإرسال لانها لكم. 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> الجمهور: عندما كنت أقول برنامج لوكتب على الملف، 630 00:31:03,610 --> 00:31:08,075 لماذا لا تكتب "ملف" بدلا من اسم الملف وfprintf-- 631 00:31:08,075 --> 00:31:13,600 >> رئيس 1: لأنه في هذه الحالة، لدينا أن الملف-- كبيرة في كل نجوم caps--، 632 00:31:13,600 --> 00:31:14,260 ملف. 633 00:31:14,260 --> 00:31:17,370 لذلك هو مؤشر إلى ملف ان كنت تتحدث عن. 634 00:31:17,370 --> 00:31:19,930 هذه هي الطريقة التي نحن فقط الرجوع إليه. 635 00:31:19,930 --> 00:31:24,850 حتى في هذه الحالة، يمكن ان يخطر آها الملف--، 636 00:31:24,850 --> 00:31:31,271 يمكننا استخدام this-- الملف هنا يشير إلى افتتاح "مرحبا" 637 00:31:31,271 --> 00:31:32,145 والسماح لها كتابة. 638 00:31:32,145 --> 00:31:34,728 >> الجمهور: يمكن أن نضع "مرحبا" بدلا من ذلك [؟ فقط] الملف؟ و؟ 639 00:31:34,728 --> 00:31:40,160 رئيس 1: لا، لأن "مرحبا" يجب أن تكون مفتوحة وللكتابة. 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 الملف هنا هو مثل التسمية التي تقول حسنا، نحن 642 00:31:45,980 --> 00:31:49,190 يكون هذا hello-- الملف-- أننا نبحث في. 643 00:31:49,190 --> 00:31:50,680 تم فتحه. 644 00:31:50,680 --> 00:31:52,140 ونحن نذهب إلى الكتابة إليه. 645 00:31:52,140 --> 00:31:55,130 إذا كنت تستخدم فقط "مرحبا"، أن يتم تغليف في ذلك. 646 00:31:55,130 --> 00:31:56,846 لذلك سيكون ليفزع. 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 أعني، هل يمكن أن يدعى ذلك. 649 00:32:00,300 --> 00:32:03,960 كنت قد فعلت الملف، نجم "مرحبا"، يساوي ذلك. 650 00:32:03,960 --> 00:32:07,840 لكن بيت القصيد هو أنك تحتاج مؤشر نجم ملف من أجل 651 00:32:07,840 --> 00:32:09,281 لتكون قادرة على استخدام هذه الوظائف. 652 00:32:09,281 --> 00:32:11,280 الجمهور: هل يمكن أن تفعل ملف، نجمة، ملف، "مرحبا" 653 00:32:11,280 --> 00:32:13,113 أو هل لديك لوضع ملف نجم، ملف به؟ 654 00:32:13,113 --> 00:32:16,330 رئيس 1: هل يمكن القيام ملف، نجمة، "مرحبا." 655 00:32:16,330 --> 00:32:19,790 يمكنك تغيير هذا ل أيا كان الاسم الذي تريده. 656 00:32:19,790 --> 00:32:22,114 انها التعسفي تماما ما هو هذا الاسم. 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 يمكنك أن تسميه أي شيء. 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 تسميته السباغيتي الطائر، إذا أردت. 661 00:32:28,020 --> 00:32:29,690 >> الجمهور: ما هو "ث" في الاقتباس عنه؟ 662 00:32:29,690 --> 00:32:31,540 >> رئيس 1: إن "ث" هو مجرد واسطة. 663 00:32:31,540 --> 00:32:33,170 لذلك نحن في الكتابة إلى هذا الملف. 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 الجميع جيدا؟ 666 00:32:35,320 --> 00:32:36,227 واضح؟ 667 00:32:36,227 --> 00:32:36,981 نعم. 668 00:32:36,981 --> 00:32:40,365 >> الجمهور: لذا عندما يكتب هذا ملف، أين نحن بعد ذلك تجد أن الملف؟ 669 00:32:40,365 --> 00:32:43,820 >> رئيس 1: سوف تكون في نفس الدليل الذي كنت فيه حاليا. 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 إذا كنت في PSET ثلاثة و تشغيل هذا، ضمن PSET بك 672 00:32:48,880 --> 00:32:52,600 ثلاث مجلد سيكون هذا ملف يسمى "مرحبا". 673 00:32:52,600 --> 00:32:53,160 بارد؟ 674 00:32:53,160 --> 00:32:53,757 الجميع جيدا؟ 675 00:32:53,757 --> 00:32:55,840 أشعر وكأنك جميع الحصول عليه، وهو أمر عظيم. 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 موافق. 678 00:32:57,790 --> 00:33:05,960 حتى العودة الى بلدي show-- الشريحة أنا أحب عندما تعمل الأشياء. 679 00:33:05,960 --> 00:33:08,674 OK، pointers-- هل أنت متحمس الرجال؟ 680 00:33:08,674 --> 00:33:09,465 مؤشرات كبيرة. 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 أنها تأخذ قليلا للالتفاف حول رأسك. 683 00:33:13,580 --> 00:33:15,288 هذا هو بلدي السنة الثانية مؤشرات التعليم. 684 00:33:15,288 --> 00:33:16,850 وأعتقد أنني أخيرا حصلت عليه. 685 00:33:16,850 --> 00:33:18,650 حتى إذا كنت النضال، انه موافق. 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 كما قلت من قبل، رسم الصور يساعد كثيرا مع الأشياء في CS، 688 00:33:24,070 --> 00:33:27,400 بقدر ما اعتقد ان الناس يميلون يا للتفكير، ونحن في جهاز الكمبيوتر. 689 00:33:27,400 --> 00:33:28,399 ينبغي لنا مجرد رمز. 690 00:33:28,399 --> 00:33:30,190 صور الرسم No-- سوف تساعد حقا لك. 691 00:33:30,190 --> 00:33:32,773 وأنا حقا نشجعكم على الاستفادة من الجانب روضة الأطفال الخاص بك 692 00:33:32,773 --> 00:33:35,010 وتبرز الطباشير أو علامات والتعادل. 693 00:33:35,010 --> 00:33:36,110 لأنها سوف تساعدك. 694 00:33:36,110 --> 00:33:39,380 وإذا رأيت لي في ساعات العمل، و وسوف تحمل نحو رزمة من الورق 695 00:33:39,380 --> 00:33:41,580 مع أقلام الرسم الامور. 696 00:33:41,580 --> 00:33:44,370 >> لذلك خاصة مع pointers-- رسم الصور. 697 00:33:44,370 --> 00:33:47,970 وأنا متأكد من أننا ذاهبون فعلا ل يكون رسم بعض الصور هنا أيضا. 698 00:33:47,970 --> 00:33:51,270 >> لذلك يا رفاق جميعا حصلت لرؤية بينكي، هذا الشيء claymation بارد. 699 00:33:51,270 --> 00:33:54,720 ونعتقد انه مضحك حقا عندما انه سينفجر في حفنة من القطع. 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 انها بعض الراحة هزلية لفئة. 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [غير مسموع] هذه القدرة العظيمة لتكون قادرة على السيطرة على الذاكرة. 704 00:34:05,900 --> 00:34:10,090 وانها واحدة من الأشياء التي حقا يجعل من هذه اللغة القوية. 705 00:34:10,090 --> 00:34:13,469 ولكن مع القوة الكبيرة تأتي مسؤولية كبيرة. 706 00:34:13,469 --> 00:34:16,230 ويمكن أن يحدث أشياء مجنونة إذا كنت غير دقيق. 707 00:34:16,230 --> 00:34:18,560 حتى عندما كنت تستخدم مؤشرات، وتريد أن تجعل 708 00:34:18,560 --> 00:34:21,440 تأكد من أنك تفهم حقا بالضبط ما تفعلونه. 709 00:34:21,440 --> 00:34:25,530 نأمل أن قليلا المقبل ل الوقت سوف تساعدك على فهم حقا 710 00:34:25,530 --> 00:34:27,850 المؤشرات، وكيفية استخدامها، وكيفية التعامل معهم. 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> حتى memory-- أنا متأكد من أننا بحثنا رأيت هذا المخطط من قبل. 713 00:34:33,460 --> 00:34:38,540 لذلك هذا هو مجرد رسم تخطيطي بسيط من كيف يمكن تخزين الأشياء الذاكرة. 714 00:34:38,540 --> 00:34:43,145 بحيث يكون لديك أساسا هذه صفائف ضخمة من كتل بايت واحد 715 00:34:43,145 --> 00:34:46,000 ما لدينا طفيف here-- الزيادات من جانب واحد في كل مرة. 716 00:34:46,000 --> 00:34:51,810 هذا هو في عرافة [غير مسموع] حتى كتل ثمانية بت. 717 00:34:51,810 --> 00:34:55,510 ويرتبط كل كتلة مع بعض عنوان عشري. 718 00:34:55,510 --> 00:34:58,750 حتى إذا كنت من أي وقت مضى نرى 0X، وهذا مجرد الترميز 719 00:34:58,750 --> 00:35:00,670 انه عنوان عشري. 720 00:35:00,670 --> 00:35:03,970 يمكنك تحمل هذا يعني بعض العناوين في الذاكرة. 721 00:35:03,970 --> 00:35:06,935 نحن نتحدث عن عناوين الذاكرة كلما رأيت عشري. 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> لدينا [إينتس] هي متغيرات، يطفو هي المتغيرات التي تخزن. 724 00:35:14,630 --> 00:35:16,260 حتى متجر [إينتس] [إينتس]. 725 00:35:16,260 --> 00:35:17,430 متجر يطفو يطفو. 726 00:35:17,430 --> 00:35:20,260 لذلك لدينا أيضا مؤشرات ان عناوين الذاكرة المخزن. 727 00:35:20,260 --> 00:35:21,660 هذا هو نوع من الخرائط. 728 00:35:21,660 --> 00:35:24,240 المؤشرات هي حصرا لعناوين الذاكرة. 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 ذلك أن مثل نوع الخاصة بك هناك. 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 الجهاز الخاص بك هو 32 بت، مما يعني عنوان الذاكرة الخاص بك هو أربعة بايت. 733 00:35:34,470 --> 00:35:37,830 لذلك أي مؤشر أن لديك يحدث أيضا أن تكون أربعة بايت. 734 00:35:37,830 --> 00:35:43,200 وإلا لو كان أربعة بايت، الذاكرة هي أربعة بايت. 735 00:35:43,200 --> 00:35:44,790 ذاكرة تخزين المؤشرات. 736 00:35:44,790 --> 00:35:46,430 وبالتالي، انهم أربعة بايت. 737 00:35:46,430 --> 00:35:48,460 Cool-- ترغب فقط في تعزيز ذلك. 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> يجب أن تحصل على هذا هزلية الآن. 740 00:35:52,220 --> 00:35:55,040 أنا لا أعرف كم منكم مراوح XKCD، ولكن أنا أحب XKCD. 741 00:35:55,040 --> 00:35:55,780 انه لشيء رائع. 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> حسنا. 744 00:35:57,790 --> 00:36:01,640 هكذا خلق pointers-- كما قلت، انها الى حد كبير تماما مثل أي شيء آخر. 745 00:36:01,640 --> 00:36:02,930 لديك نوع. 746 00:36:02,930 --> 00:36:04,050 لديك اسم. 747 00:36:04,050 --> 00:36:04,810 أليس كذلك؟ 748 00:36:04,810 --> 00:36:10,410 هذا ما لدينا هناك. [؟ عرافة؟] نجم تعني أنها مؤشر، 749 00:36:10,410 --> 00:36:12,250 وبعد ذلك كل ما تريد أن نسميها. 750 00:36:12,250 --> 00:36:15,770 لذلك يمثل نوع ماذا يمكنك تخزين. 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 كل الحق؟ 753 00:36:17,990 --> 00:36:24,350 في بنفس الطريقة التي اذا لم نفعل [إينتس]، نحن نعلم أننا تخزين عدد صحيح هناك. 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 مع مؤشر، و يحمل عنوان الذاكرة. 756 00:36:30,280 --> 00:36:34,240 ولكن ما يعنيه هو that-- هنا هو المكان رسم سوف تأتي في متناول اليدين. 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 حتى في هذه الحالة، لدينا بعض value-- دعنا نقول الأربعة. 759 00:36:45,980 --> 00:36:49,306 أربعة هو في عنوان واحد. 760 00:36:49,306 --> 00:36:49,805 موافق؟ 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> يعني هذا واحد الأول هنا أنه من 2X المؤشر. 763 00:36:56,170 --> 00:36:56,740 أليس كذلك؟ 764 00:36:56,740 --> 00:36:57,628 انها بعض مؤشر السينية. 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 قد يكون خ شيئا، أيا كان. 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 مهما خ is-- القول x هو أربعة. 769 00:37:05,130 --> 00:37:07,280 انها تسير لتخزين عنوان الذاكرة هنا. 770 00:37:07,280 --> 00:37:12,260 الباحث ذلك، نجمة، x-- هذا هو بعض فتحة أخرى في memory-- 771 00:37:12,260 --> 00:37:13,590 الذي يعرف ما هو هذا. 772 00:37:13,590 --> 00:37:15,430 لكنه سيحتاج لتخزين عنوان هنا. 773 00:37:15,430 --> 00:37:27,040 ولذلك فإن هذا سيكون like-- في هذه الحالة، أيا كان، 774 00:37:27,040 --> 00:37:32,630 يتم تخزينها في 0x1-- كل ما تم تخزينه في العنوان الذي يحمل مؤشر لدينا، 775 00:37:32,630 --> 00:37:35,280 لديه لمتابعة المباراة مع ما كنا المعين. 776 00:37:35,280 --> 00:37:40,330 حتى في 0x1 ومن في هذه الحالة، وهذا هو س. 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 لا يمكن إلا أن يكون هذا من أي وقت مضى كثافة العمليات في حين أننا نستخدم هذا. 779 00:37:49,340 --> 00:37:52,950 >> وبالمثل، إذا كان لدينا الخريطة 1y آخر، أيا كان 780 00:37:52,950 --> 00:37:59,130 يتم تخزين عنوان مع ذ له أن يكون الشيء نفسه مع char-- ض. 781 00:37:59,130 --> 00:38:05,840 في نفس الطريق، وكلما محاولة القيام intx يساوي 0.4، 782 00:38:05,840 --> 00:38:09,275 انها سوف يصيح فيك ويكون مثل لا، قلت لك أراد الباحث. 783 00:38:09,275 --> 00:38:10,525 ومن المفترض أن يكون هذا الباحث. 784 00:38:10,525 --> 00:38:11,900 التوقف عن محاولة لجعلها تطفو. 785 00:38:11,900 --> 00:38:14,150 >> لذلك دعونا الأشياء أن تكون ما تريد أن تكون. 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 ترك الأمور يكونوا أنفسهم. 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 ذلك الشيء الكبير هو فقط أيا كان نوع المؤشر 790 00:38:23,450 --> 00:38:26,101 هو، هذا هو فقط شيء يمكنك تخزين هناك. 791 00:38:26,101 --> 00:38:26,600 موافق؟ 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 مع الممارسة، كما هو الحال مع في الأسبوع الماضي، كل شيء 794 00:38:31,160 --> 00:38:32,817 يبدو حقا نوع من التجريد. 795 00:38:32,817 --> 00:38:34,150 ونحن في طريقنا للقيام ببعض الممارسات. 796 00:38:34,150 --> 00:38:36,760 ينبغي أن يكون أكثر منطقية. 797 00:38:36,760 --> 00:38:44,580 >> حتى الرجوع وdereferencing-- انها من المهم حقا للحصول على هذه مستقيمة. 798 00:38:44,580 --> 00:38:46,630 لا يزال لدي لتحديث بين الحين والآخر. 799 00:38:46,630 --> 00:38:48,450 وأنا مثل الانتظار، وهو واحد لا أريد؟ 800 00:38:48,450 --> 00:38:56,080 لذلك العطف سيعطي الواقع لك مرجعية أو عنوان. 801 00:38:56,080 --> 00:39:00,100 لذلك إرجاع عنوان في يتم تخزين الذاكرة التي المتغير. 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 حتى انها سوف تعود فعلا لك وعشري، في حين أنه dereferencing 804 00:39:07,020 --> 00:39:10,641 هو في الواقع ذاهب الى ان نعطيكم البيانات التي يتم تخزينها هناك. 805 00:39:10,641 --> 00:39:11,140 موافق؟ 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 لذلك نحن في طريقنا لننظر إلى مثال سريع حقا، أو في الواقع يصل المقبل. 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> موافق. 810 00:39:19,150 --> 00:39:21,790 لذلك علينا أن نفكر حقا بعناية حول هذا الموضوع. 811 00:39:21,790 --> 00:39:23,860 حتى هنا لدينا بعض صحيحا س. 812 00:39:23,860 --> 00:39:26,485 انا ذاهب الى محاولة رسم هذه إلى أحسن قدراتي. 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 لذلك نحن ذاهبون الى هذه الفتحة س. 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 وانها لتخزين خمسة. 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 عنوانه هو 0x4. 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 بارد؟ 821 00:39:43,160 --> 00:39:44,100 كل خير. 822 00:39:44,100 --> 00:39:45,470 >> حتى الآن لدينا هذا المؤشر. 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 كان أكثر من هنا. 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 والعطف يعطينا عنوان لشيء ما. 827 00:39:57,560 --> 00:40:00,780 لذلك، في هذه الحالة، هو عنوان السينية. 828 00:40:00,780 --> 00:40:01,875 ما هو عنوان العاشر؟ 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04-- وهذا المؤشر هو في 0x08. 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 بارد؟ 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 لذلك يمكنك التفكير في هذا المؤشر، 04، يشير فقط إلى هنا. 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 وانهم دعا مؤشرات لأنه كما أن نحصل أكثر في هذا، 837 00:40:25,740 --> 00:40:28,450 وأنت تسير لرؤية لافتا إلى الأشياء. 838 00:40:28,450 --> 00:40:31,470 وكتلة واحدة لافتا إلى أخرى سوف كتلة جعل الكثير من معانيها. 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 حتى هنا هما. 841 00:40:33,890 --> 00:40:38,230 ثم لدينا بعض نسخة، وهو 0x0c what--. 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 وانه سيكون ل dereference مؤشر لدينا. 844 00:40:43,420 --> 00:40:46,790 >> فما نقوله هو انه حسنا، لدينا هنا مؤشر. 845 00:40:46,790 --> 00:40:53,090 القيمة التي يخزن هي 0x04، وماذا انها تقول ان تذهب الى هذا العنوان 846 00:40:53,090 --> 00:40:54,300 وتقول لي ما هو عليه. 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 ذلك أن فعالية ما هذا السهم به. 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 يمكنك التفكير في مثل هذه نجمك. 851 00:41:01,280 --> 00:41:05,410 لذلك حسنا، عندما نفعل نجوم، فهذا يعني متابعة. 852 00:41:05,410 --> 00:41:06,810 يذهب إلى هذا العنوان. 853 00:41:06,810 --> 00:41:11,430 وهذا هو أساسا مجرد التالية هذا السهم لهذا قطعة الذاكرة. 854 00:41:11,430 --> 00:41:15,380 وتعطينا ما هو عليه، وهو 5. 855 00:41:15,380 --> 00:41:18,840 وهذا هو السبب لدينا نسخة تساوي 5. 856 00:41:18,840 --> 00:41:20,120 هل هذا يعقل؟ 857 00:41:20,120 --> 00:41:22,769 لا أحد يحتاج لي للذهاب من خلال ذلك مرة أخرى، أو ببطء أكثر؟ 858 00:41:22,769 --> 00:41:24,560 تريد مني أن أذهب من خلال واحدة لمزيد من الوقت؟ 859 00:41:24,560 --> 00:41:25,060 موافق. 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 نحن ذاهبون لإعادة رسم مرة أخرى. 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 عندما نبدأ، نحن نتفق جميعا لدينا بعض قطعة من الذاكرة وهذا متغير 864 00:41:37,205 --> 00:41:40,890 س التي وضعناها يساوي 5. 865 00:41:40,890 --> 00:41:42,910 نحن لا نتحكم حيث هو في الذاكرة. 866 00:41:42,910 --> 00:41:45,520 حتى هذه البقعة هي فقط تعيين تعسفا. 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 جيدة هناك؟ 869 00:41:48,731 --> 00:41:49,230 موافق. 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 ثم أننا تهيئة مؤشر إلى int. 872 00:41:53,330 --> 00:41:56,900 هذا هو السبب في أنه يسمح للإشارة إلى س لأن لدينا عدد صحيح هنا. 873 00:41:56,900 --> 00:42:00,840 لدينا قسما آخر من الذاكرة لأن هذا المؤشر 874 00:42:00,840 --> 00:42:03,485 هو متغير تماما مثل أي شيء آخر. 875 00:42:03,485 --> 00:42:06,615 لقد كلف ذلك تعسفا بعض المساحة في الذاكرة. 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 وما يخزن هو عنوان السينية. 878 00:42:10,830 --> 00:42:13,200 العطف يعني عنوان السينية. 879 00:42:13,200 --> 00:42:14,575 فما هو عنوان العاشر؟ 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> الجمهور: انها zero-- 882 00:42:20,614 --> 00:42:21,280 رئيس 1: 0x04. 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 حتى then-- آخر واحد. 885 00:42:25,940 --> 00:42:30,650 لدينا بعض copy-- مرة أخرى مجرد متغير آخر. 886 00:42:30,650 --> 00:42:32,520 لذلك دعونا تعيين بعض مكان التعسفي. 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 ونحن dereference مؤشر لدينا. 889 00:42:38,080 --> 00:42:42,490 النجم تعني الذهاب الى عنوان تخزينها في مؤشر بلدي. 890 00:42:42,490 --> 00:42:44,480 تقول لي ما هناك. 891 00:42:44,480 --> 00:42:47,290 حتى عنوان تخزين في مؤشر لدينا هو 0x04. 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 لذلك نحن نذهب إلى هذا العنوان. 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 انها لافتا إلى هذا العنوان. 896 00:42:54,590 --> 00:42:57,481 ما هو داخل هذه الكتلة الذاكرة؟ 897 00:42:57,481 --> 00:42:57,980 انها خمسة. 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 وهذا ما نعلق نسختنا. 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 الجميع جيدا؟ 902 00:43:04,860 --> 00:43:05,360 بارد. 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 الصور Again--. 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> حتى تتبع القيم here-- أنا الذهاب لتمكنك من رفاق التفكير حول هذا الموضوع. 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 يمكننا رسم صورة أخرى. 909 00:43:27,750 --> 00:43:31,260 ولكن أريدك أن محاولة والعقل من خلال هذا لوحدك لمدة دقيقة. 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> لأنها لم تعط لنا عنوان سبيل المثال، 912 00:44:04,149 --> 00:44:06,940 أنا ذاهب لمجرد القيام x-- العطف التي ينبغي أن تساعد قيادتها المنزل. 913 00:44:06,940 --> 00:44:07,950 العطف يعني العنوان. 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> وذلك في أول واحد، الجميع الذهاب مع السطر الأول. 916 00:44:12,360 --> 00:44:15,690 بعض خ مجموعة في بعض five-- فتحة عشوائية في الذاكرة. 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 مؤشر كثافة النجم يساوي إلى عنوان السينية، أليس كذلك؟ 919 00:44:23,200 --> 00:44:28,180 مؤشر نجم الباحث يخلق هذه الكتلة، يسمونها المؤشر، 920 00:44:28,180 --> 00:44:30,650 ويسند الى عنوان السينية. 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 أنا الرهيبة في الوات. 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> الآن ما نفعله هو أننا نقول OK، dereference مؤشر لدينا. 925 00:44:40,550 --> 00:44:42,760 لذلك نحن نذهب موافق، ما هو في مؤشر لدينا؟ 926 00:44:42,760 --> 00:44:44,820 انها العطف س. 927 00:44:44,820 --> 00:44:49,400 الذهاب إلى العطف x و إعادة تعيين ذلك. 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> حتى الآن، العطف س ستكون 35. 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 ذلك أساسا، عندما كنت dereferencing، تذهب موافق. 932 00:45:05,174 --> 00:45:07,090 كنت على وشك أن رسم الصور من هذا القبيل. 933 00:45:07,090 --> 00:45:09,423 كنت على وشك أن رسم السهام فوق حيث هو. 934 00:45:09,423 --> 00:45:16,030 لذلك يذهب إلى هذه الفتحة في الذاكرة وإما أعطني أن يعود القيمة، أو تغييرها. 935 00:45:16,030 --> 00:45:21,620 في هذه الحالة، لأننا في هذه القيمة، ونحن تكليفه ليكون 35. 936 00:45:21,620 --> 00:45:24,700 بينما في الماضي واحد، إذا لاحظت، نحن 937 00:45:24,700 --> 00:45:27,680 تم تعيين ما كان من هنا لشيء آخر. 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> بحيث يصبح لديهم هذا الجدول رهيبة. 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 انها ليست بهذا السوء. 942 00:45:36,890 --> 00:45:37,970 يا رفاق العمل على ذلك. 943 00:45:37,970 --> 00:45:39,640 انا ذاهب الى رسم بها على متن الطائرة. 944 00:45:39,640 --> 00:45:41,306 نحن ذاهبون لملء بها معا، موافق؟ 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 حتى انتزاع بعض الورق، والاستيلاء شريك، بدء العمل. 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 انا ذاهب الى الحصول على أكبر قطعة من الطباشير. 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 لأنه سوف يكون هناك الكثير. 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 موافق. 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 أستاذ: OK. 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 دعونا نبدأ مع الصف الأول. 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 سنبدأ هناك، ثم يا رفاق ربما يمكن أن تعمل من خلال بعض أكثر. 959 00:48:16,970 --> 00:48:17,870 موافق. 960 00:48:17,870 --> 00:48:19,810 ويساوي أضعاف ب ج فما هو؟ 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 انها ليست مسألة خدعة، وأعدكم. 963 00:48:23,260 --> 00:48:24,440 >> الطالب: 4 مرات 5. 964 00:48:24,440 --> 00:48:25,420 >> الاستاذ: 4 مرات 5. 965 00:48:25,420 --> 00:48:25,920 20. 966 00:48:25,920 --> 00:48:26,730 إذن ما هو ب؟ 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 الطالب: 4. 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> أستاذ: وج؟ 971 00:48:31,043 --> 00:48:31,542 الطالب: 5. 972 00:48:31,542 --> 00:48:32,083 الاستاذ: 5. 973 00:48:32,083 --> 00:48:35,960 ثم هذا هو مجرد الذهاب ل أن العطف لذلك، العطف ب، 974 00:48:35,960 --> 00:48:38,575 ج العطف، أليس كذلك؟ 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 ليس سيئا. 977 00:48:40,596 --> 00:48:42,081 انها بسيطة بما فيه الكفاية. 978 00:48:42,081 --> 00:48:42,580 موافق. 979 00:48:42,580 --> 00:48:44,300 حتى واحد القادم. 980 00:48:44,300 --> 00:48:48,725 وتعادل مرة وج، في حالة كان أي شخص غير معتاد على ذلك. 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 الجميع هو مألوف مع الزمن تساوي؟ 983 00:48:53,300 --> 00:49:00,105 حسنا، كل هذا means-- هذا الاختزال ليساوي مرات ج. 984 00:49:00,105 --> 00:49:04,840 يمكنك أيضا أن تفعل ذلك مع الانقسام، وبالإضافة إلى ذلك، مع الطرح. 985 00:49:04,840 --> 00:49:12,130 يمكنك القيام متساوين، أو زائد يساوي ج يعني يعادل ج زائد، ناقص المساواة 986 00:49:12,130 --> 00:49:15,190 ج أن يكون يساوي ناقص ج. 987 00:49:15,190 --> 00:49:16,690 انها السكر النحوي فقط. 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> لذلك، في هذه الحالة، يساوي فإن الأوقات ج تعطينا ماذا؟ 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 مرة أخرى، ليست مسألة خدعة. 992 00:49:28,186 --> 00:49:28,965 >> الطالب: 100. 993 00:49:28,965 --> 00:49:29,300 >> أستاذ: 100. 994 00:49:29,300 --> 00:49:30,383 لم يتغير أي شيء آخر؟ 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 لا. 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 ربما أنا سوف تحصل في النهاية أفضل في الوات بلدي. 999 00:49:39,850 --> 00:49:42,047 >> الطالب: حسنا، آسف، كيف تحصل على 100؟ 1000 00:49:42,047 --> 00:49:42,630 أستاذ: OK. 1001 00:49:42,630 --> 00:49:46,594 لذلك لا يساوي ج مرات، لذلك مرات ج. 1002 00:49:46,594 --> 00:49:48,510 الطالب: أوه، كنت تستخدم وللprevious-- 1003 00:49:48,510 --> 00:49:49,135 الاستاذ: نعم. 1004 00:49:49,135 --> 00:49:51,450 لذلك فان هذه هي قيمنا الأخيرة. 1005 00:49:51,450 --> 00:49:53,990 هذه هي ما يجب أن يكون باستخدام ونحن نتحرك إلى أسفل، موافق. 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 لذلك، ب هي الشيء الوحيد الذي تغير، أليس كذلك؟ 1008 00:50:01,520 --> 00:50:02,910 لذلك دعونا ملء كل شيء آخر. 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B. ما هو ب يذهب أن يكون؟ 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 أن تكون أو لا تكون. 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 فما هو هذا به؟ 1015 00:50:20,240 --> 00:50:21,605 ما هو النجم به سنويا؟ 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> الطالب: الرمز إلى موقع السلطة. 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> الطالب: لا، ليس تماما. 1020 00:50:27,480 --> 00:50:29,470 لذلك هذا هو مرجع د. 1021 00:50:29,470 --> 00:50:31,580 >> الطالب: هي قيمة ذلك ب سلمت السلطة الفلسطينية. 1022 00:50:31,580 --> 00:50:37,340 >> الاستاذ: نعم، حتى السلطة الفلسطينية عنوان لذلك، أليس كذلك؟ 1023 00:50:37,340 --> 00:50:42,430 حتى انها قائلة الذهاب إلى حيث هو تخزينها وإعطائها تلك القيمة. 1024 00:50:42,430 --> 00:50:43,884 فما هو ب؟ 1025 00:50:43,884 --> 00:50:44,425 الطالب: 100. 1026 00:50:44,425 --> 00:50:46,534 أستاذ: 100. 1027 00:50:46,534 --> 00:50:47,450 الكمال. 1028 00:50:47,450 --> 00:50:49,879 موافق، لذلك الكمبيوتر هو ما يتغير. 1029 00:50:49,879 --> 00:50:51,170 كل شيء آخر يبقى على حاله. 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 ما الكمبيوتر سيكون؟ 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 مهمة بسيطة. 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 كمبيوتر تساوي السلطة الفلسطينية، وما هي السلطة الفلسطينية؟ 1036 00:51:05,990 --> 00:51:07,049 >> الطالب: العطف و. 1037 00:51:07,049 --> 00:51:07,840 أستاذ: الكمال. 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 الآن نحن نحصل على اهتمام. 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 حسنا، دعنا كسر هذا واحد لأسفل. 1042 00:51:15,230 --> 00:51:21,110 أولا، ما هو أضعاف ب ج، لأن هذا الجزء السهل من هذا واحد، أليس كذلك؟ 1043 00:51:21,110 --> 00:51:22,360 مرة ب ج is-- 1044 00:51:22,360 --> 00:51:23,320 >> الطالب: 500. 1045 00:51:23,320 --> 00:51:28,880 >> الاستاذ: نعم، بذلك ما يفعله هذا واحد، 1046 00:51:28,880 --> 00:51:33,705 إذا كان نجم للبرميل، ما تغير؟ 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> الطالب: ما هو في the-- 1049 00:51:37,242 --> 00:51:38,200 أستاذ: ما هو في ب؟ 1050 00:51:38,200 --> 00:51:41,340 الطالب: ما هو في الفضاء أن للبرميل يشير إلى. 1051 00:51:41,340 --> 00:51:43,406 الاستاذ: والرصاص يشير علي: 1052 00:51:43,406 --> 00:51:43,905 الطالب: B. 1053 00:51:43,905 --> 00:51:46,740 أستاذ: B. لذا فقط شيء تغير هو ب، الحق. 1054 00:51:46,740 --> 00:51:50,800 حتى بالأبيض الأوقات ج، 500. 1055 00:51:50,800 --> 00:51:52,367 وهذا ما يتغير الآن. 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 بارد. 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 جميل. 1060 00:52:00,840 --> 00:52:01,905 تقومون به عظيم. 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 كل الحق، وكسر هذا واحد لأسفل. 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 C يتغير، أليس كذلك؟ 1065 00:52:09,630 --> 00:52:11,530 حتى نتمكن من ملء كل شيء آخر. 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 دعونا نرى. 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 موافق. 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 ونحن نعلم أن ج سوف يكون المنتج من رقمين، أليس كذلك؟ 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 ما رقمين، على الرغم من؟ 1074 00:52:27,980 --> 00:52:28,970 >> الطالب: A و C؟ 1075 00:52:28,970 --> 00:52:31,930 >> أستاذ: من هو ذلك الحق لأول واحد. 1076 00:52:31,930 --> 00:52:34,385 لذلك نحن د الرجوع p من ذلك، أليس كذلك؟ 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 P من النقاط لذلك، لذلك نحن نعرف أن هذه ستكون 100 مرة ماذا؟ 1079 00:52:42,870 --> 00:52:46,232 أضعاف ما يفعل نقطة الكمبيوتر ل؟ 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 يشير إلى. 1082 00:52:48,740 --> 00:52:55,038 حتى 100 مرة 100 هو 10000. 1083 00:52:55,038 --> 00:52:56,170 هل هذا منطقي؟ 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 بارد. 1086 00:52:58,200 --> 00:53:00,500 امتداد الوطن، والرجال، الصف الأخير. 1087 00:53:00,500 --> 00:53:01,190 موافق. 1088 00:53:01,190 --> 00:53:02,160 ما الذي تغير هنا؟ 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> الطالب: أ. 1091 00:53:06,935 --> 00:53:09,435 الاستاذ: أ. مثالي، لذلك كل شيء آخر يمكن أن تبقى نفسها. 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 موافق. 1094 00:53:16,710 --> 00:53:17,970 وما هو؟ 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 لذلك هو أضعاف ما؟ 1097 00:53:26,060 --> 00:53:27,120 هذا هو النجم برميل. 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 حتى النجوم للبرميل يعني هنا برميل، ونقاط الرصاص لب. 1100 00:53:34,490 --> 00:53:35,370 >> الطالب: 500. 1101 00:53:35,370 --> 00:53:36,230 >> أستاذ: 500. 1102 00:53:36,230 --> 00:53:39,236 لذلك لدينا 500 مرة 100. 1103 00:53:39,236 --> 00:53:41,758 هذا هو 50000. 1104 00:53:41,758 --> 00:53:43,216 يا للعجب! 1105 00:53:43,216 --> 00:53:45,646 ننظر في ذلك. 1106 00:53:45,646 --> 00:53:47,982 >> الطالب: لماذا لدينا و& ج لlast-- 1107 00:53:47,982 --> 00:53:48,690 الاستاذ: آسف. 1108 00:53:48,690 --> 00:53:50,080 الطالب: أوه، حسنا. 1109 00:53:50,080 --> 00:53:51,600 أستاذ: بلدي سيئة. 1110 00:53:51,600 --> 00:53:52,890 الكثير من الكتابة. 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 الجميع جيدا؟ 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 ليس سيئا جدا، أليس كذلك؟ 1115 00:53:56,660 --> 00:53:58,490 لا يتطلب قليلا في حين أن العمل من خلال. 1116 00:53:58,490 --> 00:54:01,080 إذا كنت كسر عليه، فهم ما كل جزء 1117 00:54:01,080 --> 00:54:03,197 كما يشير علي: مع انها كل شيء، 1118 00:54:03,197 --> 00:54:05,780 yes-- كسرها نزولا إلى قليلا مشاكل وتتحد ثم، 1119 00:54:05,780 --> 00:54:07,345 ويمكنك القيام ببعض الاشياء رهيبة. 1120 00:54:07,345 --> 00:54:08,970 هناك إجابات، ولكن فعلنا ذلك. 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 مؤشر الحساب. 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 آه. 1125 00:54:14,460 --> 00:54:15,510 يدي كلها طباشيري. 1126 00:54:15,510 --> 00:54:17,970 ذلك إضافة أو طرح الباحث يضبط المؤشر 1127 00:54:17,970 --> 00:54:21,890 حسب حجم ونوع من المؤشر. 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 نتذكر كيف كل نوع لديه حجم مختلف؟ 1130 00:54:28,390 --> 00:54:34,890 ذلك مثل ضعف أو طويلة طويلة غير ثمانية وأربعة ولكن الباحث هو شار واحد. 1131 00:54:34,890 --> 00:54:38,360 >> وذلك ما تريد القيام به is-- شيء واحد أن نتذكر 1132 00:54:38,360 --> 00:54:44,080 مجرد أن مقدار الخاصة بك قيمة المؤشر يتغير الواقع 1133 00:54:44,080 --> 00:54:46,550 سوف تعتمد على نوع المؤشر هو. 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 الجميع الجيد مع هذا؟ 1136 00:54:51,820 --> 00:54:52,760 أستطيع محو ذلك؟ 1137 00:54:52,760 --> 00:54:53,440 نحن في حالة جيدة؟ 1138 00:54:53,440 --> 00:54:53,940 رهيبة. 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> حتى إذا كان لدينا بعض مؤشر that-- هذا هو الذهاب الى be-- أنا 1141 00:55:07,501 --> 00:55:08,834 الذهاب لجعله مؤشر كثافة العمليات. 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 فإنه يخزن هذا. 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 لو كنت لأقول المؤشر زائد واحد، ما انها تنوي القيام به 1146 00:55:20,170 --> 00:55:23,420 وانها تسير لتحديث ذلك حسب حجم وكثافة العمليات 1147 00:55:23,420 --> 00:55:25,950 لأن هذا هو نوع المؤشر هو. 1148 00:55:25,950 --> 00:55:28,260 >> مع C، كل شيء صارمة جدا ومنظم. 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 مؤشر كثافة العمليات يجري لتحديث من قبل مقدار المساحة سوف تأخذ عدد صحيح. 1151 00:55:35,260 --> 00:55:36,260 عدد صحيح أربعة بايت. 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> ذلك ما يمكن أن يتحول إلى هذا؟ 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 كنت تقوم بإضافة أربعة فقط على هذا. 1156 00:55:44,390 --> 00:55:50,040 الآن المؤشر سوف be-- موافق. 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> حتى إذا كان شار وفعلنا المؤشر زائد واحد، ما من شأنه أن يكون الآن؟ 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 إذا كان started-- التظاهر نحن started-- الآن انها 0x08. 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 دعنا نقول الآن أن هذا كان شار المؤشر، واضاف نحن واحد. 1163 00:56:10,850 --> 00:56:11,850 ما من شأنه أن يغير من؟ 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 كم عدد البايتات هي شار؟ 1166 00:56:16,030 --> 00:56:16,680 >> الجمهور: واحدة. 1167 00:56:16,680 --> 00:56:17,304 >> رئيس 1: واحد. 1168 00:56:17,304 --> 00:56:18,309 الجمهور: 0x09 ذلك. 1169 00:56:18,309 --> 00:56:19,600 رئيس 1: لذا سيكون من تسعة. 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 حتى مجرد شيء أن نتذكر. 1172 00:56:23,820 --> 00:56:28,340 فقط عند إضافة واحدة، انها ليست إضافة واحدة إلا إذا كان شار. 1173 00:56:28,340 --> 00:56:34,190 لقد مضيفا أنه كم بايت من النوع الذي هو عليه، 1174 00:56:34,190 --> 00:56:36,960 وهذا هو السبب لدينا هذه المعادلة هنا. 1175 00:56:36,960 --> 00:56:40,190 لذلك فمن الأوقات إدارة النزاهة المؤسسية حجم من نوع المؤشر. 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> لذلك لدينا مثال هنا. 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 كلف Y لتلك القيمة، 0x4، عندما فعلنا ذ زائد واحد يساوي. 1180 00:56:54,430 --> 00:56:56,830 ما هو عليه، ما هو في العاشر، لا يتغير. 1181 00:56:56,830 --> 00:56:58,610 ما تفعله هو تغيير ما في ذ. 1182 00:56:58,610 --> 00:57:04,980 عنوان المخزنة في ذ تحديثها من قبل أربعة لأن هناك أربعة بايت في عدد صحيح 1183 00:57:04,980 --> 00:57:06,097 وانها مؤشر كثافة العمليات. 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> حسنا. 1186 00:57:07,790 --> 00:57:09,123 حتى الآن لدينا تمرين آخر. 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 لذا فإن السؤال هو ما سيتم طباعة. 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 أي أفكار؟ 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> الحضور: عدد الشخصيات في القط سعيدا؟ 1193 00:57:43,699 --> 00:57:44,490 رئيس 1: بالضبط. 1194 00:57:44,490 --> 00:57:45,531 مع ذلك أحب سلسلة الخاص بك. 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 لا تحصل الجميع ذلك؟ 1197 00:57:48,260 --> 00:57:49,509 نريد أن المشي من خلال ذلك؟ 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> نعم، موافق. 1200 00:57:52,010 --> 00:57:57,385 ذلك ما لدينا here-- أنا هذا مثل أكثر من ذلك بكثير. 1201 00:57:57,385 --> 00:57:59,340 ليس لدي ل [غير مسموع] يبعث على السخرية. 1202 00:57:59,340 --> 00:58:01,690 >> لذلك لدينا سلسلة لدينا هنا، القط سعيد. 1203 00:58:01,690 --> 00:58:02,950 جميل. 1204 00:58:02,950 --> 00:58:05,080 لدينا بعض المضادة التي نحن تتبع. 1205 00:58:05,080 --> 00:58:11,430 لذلك لدينا بعض شار * المؤشر ومن المقرر أن مجرد يساوي STR. 1206 00:58:11,430 --> 00:58:14,320 هذا ما تقوم به هو انها ل إسناد بعض مؤشر 1207 00:58:14,320 --> 00:58:16,380 إلى بداية سلسلة الخاص بك. 1208 00:58:16,380 --> 00:58:19,840 لأنني واثق، كما وذكر في محاضرة، 1209 00:58:19,840 --> 00:58:22,290 لقد أعطيت يا رفاق هذا نوع بيانات تسمى السلسلة. 1210 00:58:22,290 --> 00:58:29,070 >> ولكن في الحقيقة هي مجرد سلاسل of-- مجموعة مثل شار *. 1211 00:58:29,070 --> 00:58:32,330 انها مؤشر إلى مجموعة من الشخصيات التي هي متجاورة في الذاكرة. 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 لذلك هذا مجرد يحدد ذلك يساوي أي سلسلة من 1214 00:58:36,280 --> 00:58:38,980 التي حددها حيث الأول هو طابعها. 1215 00:58:38,980 --> 00:58:42,710 لذلك هذا هو مجرد وضع بعض نقطة مساوية لبداية السلسلة. 1216 00:58:42,710 --> 00:58:44,130 الجميع جيدة هناك؟ 1217 00:58:44,130 --> 00:58:44,960 بارد. 1218 00:58:44,960 --> 00:58:49,840 >> لذلك هذا هو dereferencing مؤشر لدينا. 1219 00:58:49,840 --> 00:58:53,760 لذلك يجري فعلا ل تعطينا بعض القيمة هنا، 1220 00:58:53,760 --> 00:58:55,610 في سلسلة لدينا أن نتحدث عنه. 1221 00:58:55,610 --> 00:58:58,342 ونحن نقول ما دام انها ليست فاصل فارغة. 1222 00:58:58,342 --> 00:59:00,550 لذلك تستمر حتى تحصل إلى نهاية السلسلة. 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 تحديث المؤشر من جانب واحد. 1225 00:59:04,190 --> 00:59:09,250 حتى ص، فإنه سيتم تحديث الواقع من جانب واحد في كل مرة لأن هذا هو شار، 1226 00:59:09,250 --> 00:59:09,820 شار *. 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> لذلك سيكون من خلال الذهاب. 1229 00:59:12,340 --> 00:59:13,290 انها تسير لتحديث. 1230 00:59:13,290 --> 00:59:16,705 حتى أول مرة هذا يمتد، انها سوف أكون هنا في الساعة. 1231 00:59:16,705 --> 00:59:17,590 انها تسير لتحديث. 1232 00:59:17,590 --> 00:59:18,185 >> انها سوف تكون لذلك. 1233 00:59:18,185 --> 00:59:21,310 انها سوف تكون ص، ص، وهلم جرا وهكذا دواليك. 1234 00:59:21,310 --> 00:59:22,300 سنقوم بتحديث مضاد. 1235 00:59:22,300 --> 00:59:26,160 عندما تصل إلى النهاية، يطبع فقط مدى ما حصلت عليه. 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 نعم. 1238 00:59:28,050 --> 00:59:31,475 >> الجمهور: لذلك يهم مساحة واحدة، أليس كذلك؟ 1239 00:59:31,475 --> 00:59:31,974 موافق. 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> رئيس 1: أعتقد ذلك. 1242 00:59:35,222 --> 00:59:36,830 غير أن question-- 1243 00:59:36,830 --> 00:59:37,746 >> الجمهور: [غير مسموع]. 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> رئيس 1: لا تقلق. 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 هذا أفعل ذلك. 1248 00:59:42,736 --> 00:59:47,710 كل الحق، لذلك شيء واحد أنا فهم هو أنه مع صفيف، 1249 00:59:47,710 --> 00:59:51,736 يمكنك أيضا التعامل معها على أنها مؤشر لأن المصفوفات هي فقط 1250 00:59:51,736 --> 00:59:52,860 البقع مستمرة من الذاكرة. 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> حتى تتمكن من التعامل معها بنفس الطريقة. 1253 00:59:56,380 --> 00:59:59,000 يمكنك التلاعب بها مع مؤشرات أيضا. 1254 00:59:59,000 --> 01:00:04,770 وذلك بدلا من القيام، في هذا القضية، والشيء مماثل 1255 01:00:04,770 --> 01:00:07,490 ستكون مجموعة 0 يساوي 1. 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> ولكن بنفس الطريقة التي يتم تحديد سلسلة 1258 01:00:15,210 --> 01:00:18,740 قبل بداية حيث الأول هو طابعها، 1259 01:00:18,740 --> 01:00:22,270 يتم تحديد مجموعة من قبل حيث عنصرها الأول هو. 1260 01:00:22,270 --> 01:00:25,120 لأننا نعرف، ونحن مضمونة، أن هذه 1261 01:00:25,120 --> 01:00:27,985 ستكون مستمرة كتل من الذاكرة. 1262 01:00:27,985 --> 01:00:29,360 وهذا ما يسمح لنا للقيام بذلك. 1263 01:00:29,360 --> 01:00:31,193 نحن نعرف انهم المستمر كتل من الذاكرة. 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> حتى في هذه الحالة، من خلال dereferencing مجموعة عادلة، أن يخبرنا، 1266 01:00:36,500 --> 01:00:40,800 موافق، انتقل إلى بدء مجموعة الخاص بك، والذي هو هنا. 1267 01:00:40,800 --> 01:00:42,640 بحيث يمكنك تعيين يساوي واحد. 1268 01:00:42,640 --> 01:00:48,610 وفي هذه الحالة، مهما كانت مجموعة الخاصة بك نوع هو، عند تحديثه من جانب واحد، 1269 01:00:48,610 --> 01:00:50,830 هذا مجرد مثل تحديث إلى مؤشر المقبل. 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 يمكنك أن تفعل ذلك لأنك أعرف ما هو في مجموعة الخاصة بك. 1272 01:00:56,360 --> 01:00:59,770 لذلك يعرف كم ل تحديث المؤشر من قبل، 1273 01:00:59,770 --> 01:01:02,925 ما عنوان لتحديثه لذلك أن كنت في الفتحة القادمة. 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> لذلك هذا هو مجرد وسيلة مختلفة كتابة مجموعة 0 يساوي 1، 1276 01:01:09,400 --> 01:01:15,114 مجموعة 1 يساوي 2، مجموعة قوس 2 يساوي 3. 1277 01:01:15,114 --> 01:01:16,780 انها مجرد طريقة أخرى للتفكير في الامر. 1278 01:01:16,780 --> 01:01:19,600 لأنها مستمرة كتل في الذاكرة، 1279 01:01:19,600 --> 01:01:21,830 يمكنك الرجوع إليها إما من قبل مجموعة notation-- 1280 01:01:21,830 --> 01:01:24,390 وأنا شخصيا ولكن ربما تجد easier-- 1281 01:01:24,390 --> 01:01:27,347 تحتاج إلى التلاعب به الصارم عناوين الذاكرة. 1282 01:01:27,347 --> 01:01:28,930 وهذه هي الطريقة التي ستفعل ذلك. 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 نوع أكثر من مثل شيء بارد يمكن أن تفعله 1285 01:01:32,630 --> 01:01:35,213 ربما مقابل لا شيء كنت الذهاب فعلا إلى تنفيذها. 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> أنا استخدامها في 61. 1288 01:01:38,630 --> 01:01:41,710 يا رفاق ربما لا تحتاج ما يدعو للقلق كثيرا. 1289 01:01:41,710 --> 01:01:43,693 ولكن إذا كنت مهتما، تأخذ 61 في العام المقبل. 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 نحن في الرجال امتداد الوطن. 1292 01:01:46,560 --> 01:01:47,510 أنا أعرف، انها طويلة. 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 ذاكرة ديناميكية Allocation-- لذلك نحن نعلم أن واحدة 1295 01:01:58,880 --> 01:02:01,790 من الأشياء عندما تحدثنا خلال أول قسم لدينا معا، 1296 01:02:01,790 --> 01:02:04,560 ونحن ننظر في مبادلة حيث كان وظيفة 1297 01:02:04,560 --> 01:02:08,010 خارج نطاق الوظيفة الرئيسية لدينا. 1298 01:02:08,010 --> 01:02:14,370 ونحن كانت تمر في هذه القيم التي كانت فعالة نسخة. 1299 01:02:14,370 --> 01:02:20,570 >> وبمجرد الانتهاء من مقايضة المنفذة، أنه غادر لتوه كومة. 1300 01:02:20,570 --> 01:02:22,830 تذكر، لدينا كومة إطار لتبادل. 1301 01:02:22,830 --> 01:02:26,070 فإنه يترك وتلك قيم تترك معها. 1302 01:02:26,070 --> 01:02:27,050 وكانت قد اختفت. 1303 01:02:27,050 --> 01:02:28,615 نحن لا يمكن أن تفعل أي شيء معهم، وكنا حزين 1304 01:02:28,615 --> 01:02:29,989 لأننا لا نستطيع مبادلة قيمنا. 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> ولكن مع C، وكما ذكرت، كنت لديهم الكثير من السلطة على الذاكرة. 1307 01:02:36,560 --> 01:02:43,310 ذلك ما يمكنك القيام به هو أن تتمكن من تخصيص الأشياء على كومة هنا 1308 01:02:43,310 --> 01:02:46,830 التي ستبقى هناك حتى كنت أقول لهم ذلك. 1309 01:02:46,830 --> 01:02:48,280 >> انهم مثل الأطفال جيدة. 1310 01:02:48,280 --> 01:02:49,150 بقوا هناك. 1311 01:02:49,150 --> 01:02:50,270 أنها لا تترك. 1312 01:02:50,270 --> 01:02:52,750 انهم سوف يبقون هناك حتى كنت مثل، حسنا، يمكنك الذهاب بعيدا. 1313 01:02:52,750 --> 01:02:55,920 >> بينما الأمور على المكدس، who-- انهم مثل الأطفال غير مطيع. 1314 01:02:55,920 --> 01:02:59,160 أنها سوف مجرد الهرب عندما تريد أن تكون هناك وبعد ذلك انهم ذهبوا. 1315 01:02:59,160 --> 01:03:00,160 لا يمكنك الحصول عليها مرة أخرى. 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> حتى كومة is-- نحن في طريقنا ل الحديث عن malloc وحرة، والتي 1318 01:03:07,187 --> 01:03:08,895 أنا متأكد يا رفاق سمعت في محاضرة. 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 وهذا هو الأساس وسيلة لديك البيانات المستمرة للغاية. 1321 01:03:14,210 --> 01:03:18,920 حتى تتمكن من الاحتفاظ بالبيانات حول طالما تريد. 1322 01:03:18,920 --> 01:03:19,546 مهم. 1323 01:03:19,546 --> 01:03:21,475 >> الجمهور: هل يمكنك تحديد كومة كومة و؟ 1324 01:03:21,475 --> 01:03:24,030 هم يحبون الأماكن لوضع الأمور؟ 1325 01:03:24,030 --> 01:03:26,630 >> رئيس 1: حتى أنهم just-- أساسا انهم 1326 01:03:26,630 --> 01:03:29,530 الطريق نشير فقط إلى الذاكرة. 1327 01:03:29,530 --> 01:03:37,300 حتى كومة من يضع فقط حيث يتم تخصيص الذاكرة بشكل ديناميكي، 1328 01:03:37,300 --> 01:03:40,960 في حين يشير كومة أكثر إلى كومة الإطارات 1329 01:03:40,960 --> 01:03:45,950 التي هي أكثر أهمية ل الوظائف التي تشغل الواقع. 1330 01:03:45,950 --> 01:03:47,200 لم يكن لديك السيطرة حقا. 1331 01:03:47,200 --> 01:03:50,690 >> الفرق كبير، لديك السيطرة على كومة إذا كنت تريد. 1332 01:03:50,690 --> 01:03:52,710 لديك أقل السيطرة على المكدس. 1333 01:03:52,710 --> 01:03:55,030 كومة يعتمد على الوظائف التي تعمل بنظام التشغيل، 1334 01:03:55,030 --> 01:03:58,320 والترتيب الذي هم تشغيل، وكيف يتم إرجاع الأمور. 1335 01:03:58,320 --> 01:04:01,290 بينما مع كومة، و سنرى، يمكنك القول، 1336 01:04:01,290 --> 01:04:06,639 موافق، أريد أن تكون هذه القيمة حولها حتى أنا أقول لكم خلاف ذلك. 1337 01:04:06,639 --> 01:04:08,180 لا يسمح لك التخلص منه. 1338 01:04:08,180 --> 01:04:09,300 لا يسمح لك لتجاوز ذلك. 1339 01:04:09,300 --> 01:04:11,675 وأنت تسير لإبقائه حول لطالما قلت لكم. 1340 01:04:11,675 --> 01:04:15,780 تحصل ليكون مدرب في كومة، في حين أن stack-- ربما لو كنت 1341 01:04:15,780 --> 01:04:18,080 مثل بالخدعة طريقك يمكنك أن تكون رب العمل. 1342 01:04:18,080 --> 01:04:19,340 ولكن ليس تماما. 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 وانها حقا الذاكرة فقط. 1345 01:04:22,070 --> 01:04:24,260 انها مجرد طرق مختلفة الإشارة إلى الذاكرة. 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> بارد. 1348 01:04:26,400 --> 01:04:28,630 حتى مع ذلك، وكيفية السيطرة على الذاكرة الخاصة بك. 1349 01:04:28,630 --> 01:04:32,070 انها مع malloc، التي وأنت تسير في الحصول على استخدام. 1350 01:04:32,070 --> 01:04:37,100 لذلك فمن قصيرة فقط تخصيص الذاكرة. 1351 01:04:37,100 --> 01:04:38,459 هذا كل ما هو عليه. 1352 01:04:38,459 --> 01:04:41,250 هناك حفنة من بارد آخر الوظائف التي يكون الوك في النهاية، 1353 01:04:41,250 --> 01:04:42,750 ويقفون لأشياء مختلفة. 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> لذلك عندما تحتاج التخزين التي تحتاج لتدوم الوظيفة الحالية الخاصة بك حتى 1356 01:04:49,050 --> 01:04:51,010 أنه عندما الحالية الخاصة بك تدير وظيفة بعيدا، 1357 01:04:51,010 --> 01:04:55,774 لا يزال لديك البيانات التي قمت حصلت من ذلك، كنت ترغب في استخدام malloc. 1358 01:04:55,774 --> 01:04:57,190 عليك أن تهيئة على الكومة. 1359 01:04:57,190 --> 01:05:00,140 وكما قلت والحفاظ على قال: عليك أن يبقيه هناك 1360 01:05:00,140 --> 01:05:03,050 حتى كنت اقول على خلاف ذلك، وهو الشيء المهم هنا. 1361 01:05:03,050 --> 01:05:08,450 >> ذلك شيء واحد لإشعار، و هذا هو عادة المهم حقا، 1362 01:05:08,450 --> 01:05:13,620 غير أن هذا sizeof هو السوبر مفيدة للاستخدام 1363 01:05:13,620 --> 01:05:16,440 لأن هذا يتوقف على نوع الجهاز الذي تقوم بتشغيله، 1364 01:05:16,440 --> 01:05:22,470 قد تكون لديها كميات متفاوتة الذاكرة التي يستغرق. 1365 01:05:22,470 --> 01:05:26,870 لذلك تريد دائما لاستخدام حجم ذلك ان كنت لا تعتمد آلة، 1366 01:05:26,870 --> 01:05:30,300 بحيث التعليمات البرمجية الخاصة بك سوف تشغيل على أي جهاز. 1367 01:05:30,300 --> 01:05:32,360 >> وهذا مجرد جزء كتابة كود جيد. 1368 01:05:32,360 --> 01:05:34,610 اذا كان يعمل على جهاز واحد، ولكن ليس أي من الآخرين، 1369 01:05:34,610 --> 01:05:36,440 كيف كانت مفيدة برنامجك؟ 1370 01:05:36,440 --> 01:05:38,420 لذلك تريد دائما ل تأكد واستخدام sizeof. 1371 01:05:38,420 --> 01:05:41,306 >> الجمهور: ذلك هو أن مثل حجم 10 بوصة [غير مسموع]؟ 1372 01:05:41,306 --> 01:05:43,698 >> رئيس 1: هذا هو حجم 10 [إينتس]. 1373 01:05:43,698 --> 01:05:44,197 نعم. 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 هكذا حجم من [إينتس] سيعود وكم من الوقت يستغرق الباحث واحد. 1376 01:05:48,830 --> 01:05:51,530 أو حجم شار، كيف الكثير يستغرق شار واحد. 1377 01:05:51,530 --> 01:05:54,150 ثم كم عدد القطع لذلك تريد؟ 1378 01:05:54,150 --> 01:05:57,590 >> حتى في هذه الحالة، نحن نريد شيئا أننا يمكن تخزين 10 [إينتس] ل. 1379 01:05:57,590 --> 01:06:00,240 وأنها ستعمل بغض النظر من آلة، وهو بارد. 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 لذلك فإن عدد بايت التي تعطي فعلا لك؟ 1382 01:06:04,846 --> 01:06:06,190 الرياضيات سريعة. 1383 01:06:06,190 --> 01:06:06,787 >> الجمهور: 40. 1384 01:06:06,787 --> 01:06:07,370 رئيس 1: 40. 1385 01:06:07,370 --> 01:06:07,869 بالضبط. 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 ذلك شيء آخر كبير. 1388 01:06:12,030 --> 01:06:14,840 المؤشر أو malloc يمكن العودة فارغة. 1389 01:06:14,840 --> 01:06:17,910 >> ذلك مرة أخرى، وتحقق دائما ل معرفة ما اذا كان عاد لاغية 1390 01:06:17,910 --> 01:06:19,620 قبل محاولة فعل أي شيء معها. 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 إذا حاولت وdereference هذا المؤشر الآن، 1393 01:06:27,350 --> 01:06:29,720 انها مجرد الذهاب الى سوف segfault لأنك ذهبت وحاولت 1394 01:06:29,720 --> 01:06:31,730 لمسة اغية عندما يجب أن لا يكون. 1395 01:06:31,730 --> 01:06:34,000 حتى تحقق دائما لاغية. 1396 01:06:34,000 --> 01:06:36,075 مرة أخرى، يمكن أن كل ما عليك فعله. 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> قد تعود فارغة. 1399 01:06:39,720 --> 01:06:42,740 انها سوف تعود لاغيا إذا كنت إما من الفضاء، أو لأي سبب من الأسباب 1400 01:06:42,740 --> 01:06:44,350 انها واجهت بعض خلل الذاكرة. 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 أحيانا فقط يعود فارغة. 1403 01:06:47,510 --> 01:06:48,990 بحيث يكون لديك فقط للتحقق من ذلك. 1404 01:06:48,990 --> 01:06:51,050 هذا كل هذه الشريحة يقول. 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 ثم ما لدينا هنا هو دعوة إلى تحرير. 1407 01:06:55,240 --> 01:07:00,550 هكذا بنفس الطريقة أنه إذا فتح ملف يجب إغلاق ملف، 1408 01:07:00,550 --> 01:07:04,340 إذا الذاكرة malloc، كنت يجب تحرير تلك الذاكرة. 1409 01:07:04,340 --> 01:07:06,530 ويا رفاق سوف تحصل للقيام الاشياء باردة حقا. 1410 01:07:06,530 --> 01:07:09,624 >> وهناك برنامج يمكنك تشغيل ل معرفة ما إذا كنت من أي وقت مضى تسرب الذاكرة. 1411 01:07:09,624 --> 01:07:11,040 ولكنك لا تريد أن تسرب الذاكرة. 1412 01:07:11,040 --> 01:07:11,820 انها سيئة حقا. 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 لخبط الأمور عادلة. 1415 01:07:15,020 --> 01:07:20,939 >> انها سيئة للقيام تماما مثل البرمجة الحكمة لكفاءة التصميم. 1416 01:07:20,939 --> 01:07:22,980 لكنه أيضا مجرد نوع سيئة لللجهاز الكمبيوتر الخاص بك. 1417 01:07:22,980 --> 01:07:26,780 الأمور حتى مجرد المجانية عند malloc لهم. 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> يا رفاق رؤية التماثلات هنا. 1420 01:07:30,210 --> 01:07:31,180 سوبر بسيطة. 1421 01:07:31,180 --> 01:07:33,010 فقط مجانا ثم أيا كان المؤشر الخاص بك، 1422 01:07:33,010 --> 01:07:34,843 أيا كان اسم المؤشر الخاص بك هو، و 1423 01:07:34,843 --> 01:07:36,710 سوف تأخذ الرعاية من تخليصه بالنسبة لك. 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 بارد. 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> ثم لدينا هذا. 1428 01:07:42,530 --> 01:07:44,770 لذلك نحن مجرد الذهاب ل المشي من خلال هذا البرنامج. 1429 01:07:44,770 --> 01:07:46,560 وبعد ذلك تتم يا رفاق. 1430 01:07:46,560 --> 01:07:50,240 >> حتى [غير مسموع] الرئيسي فقط. 1431 01:07:50,240 --> 01:07:51,690 لذلك لدينا بعض الباحث * المؤشر. 1432 01:07:51,690 --> 01:07:53,648 لذلك لدينا مؤشر أن يجري عقد [إينتس]. 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 وكم [إينتس] هو الذهاب الى عقد؟ 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 واحد فقط. 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 حجم وكثافة العمليات. 1439 01:08:01,100 --> 01:08:03,900 >> نحن تحقق لمعرفة ما إذا كان المؤشر هو باطل لأنه 1440 01:08:03,900 --> 01:08:06,130 هو، ونحن نريد أن نقول لا تفعل أي شيء. 1441 01:08:06,130 --> 01:08:07,065 انها سيئة. 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 لذلك نحن طباعة بعض الخطأ من الذاكرة، في معظم الأحيان العودة 1، 1444 01:08:12,130 --> 01:08:14,260 كما يا رفاق تستخدم ل. 1445 01:08:14,260 --> 01:08:17,390 >> ثم لدينا هنا، فإننا dereference مؤشر لدينا. 1446 01:08:17,390 --> 01:08:22,840 وهذا يعني أننا في طريقنا للتخزين شيء ما في مكان معين بالنسبة لنا. 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 * مؤشر كثافة العمليات، أو malloc، إرجاع عنوان حيث خصصت هذه 1449 01:08:30,830 --> 01:08:31,750 ذاكرة لك. 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 لذلك فمن الأساس مما يتيح لك like-- إذا كنت 1452 01:08:34,800 --> 01:08:38,149 التفكير في مجموعة من منازل في حي 1453 01:08:38,149 --> 01:08:40,640 إن كنت ترغب في وضع الأثاث الخاص بك في، malloc 1454 01:08:40,640 --> 01:08:43,850 هو مثل موافق، وتحصل الذهاب لإيواء ثلاثة. 1455 01:08:43,850 --> 01:08:45,800 وأنه يعطي لك عنوان المنزل الثلاثة. 1456 01:08:45,800 --> 01:08:48,775 >> لذلك هذا الحق الآن، وهذا مخازن مؤشر عنوان، 1457 01:08:48,775 --> 01:08:50,149 يخزن عنوان منزلك. 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * وسائل PTR، حسنا، أنا في بيتي. 1460 01:08:54,640 --> 01:08:55,326 بارد. 1461 01:08:55,326 --> 01:08:56,580 أنا بحاجة للحصول على بعض صحيح. 1462 01:08:56,580 --> 01:08:59,229 >> لذلك كنت طالبا لشخص لتعطيك الأثاث الآن. 1463 01:08:59,229 --> 01:09:00,430 حتى تحصل على بعض الباحث. 1464 01:09:00,430 --> 01:09:05,100 وأنه يضع في المؤشر حيث انها تشير الى. 1465 01:09:05,100 --> 01:09:08,670 >> وبعد ذلك فقط يطبع بها، أينما كنت دخلت. 1466 01:09:08,670 --> 01:09:11,060 ومرة أخرى، فإن الإشارة. 1467 01:09:11,060 --> 01:09:15,649 لذلك هذا هو وكأنك ذهبت إلى هذا معالجة ورأيت ما كان هناك. 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 بارد؟ 1470 01:09:17,630 --> 01:09:20,174 >> وبعد ذلك بالطبع نحرر مؤشر لدينا. 1471 01:09:20,174 --> 01:09:21,590 لا ننسى لتحرير المؤشر. 1472 01:09:21,590 --> 01:09:22,933 لا تنسى أن تحقق لاغية. 1473 01:09:22,933 --> 01:09:24,349 لا ننسى لتحرير المؤشر. 1474 01:09:24,349 --> 01:09:27,270 لديك اثنين من الأشياء التي تذكر من هذا، أو ذاك يجب أن نتذكر. 1475 01:09:27,270 --> 01:09:27,770 نعم. 1476 01:09:27,770 --> 01:09:31,590 الجمهور: [غير مسموع] الاشياء من هذا القبيل، وشار * ليالي. 1477 01:09:31,590 --> 01:09:33,760 كيف نكون أبدا سراح هؤلاء؟ 1478 01:09:33,760 --> 01:09:34,529 >> رئيس 1: جلالة الملك؟ 1479 01:09:34,529 --> 01:09:36,450 >> الجمهور: هل مثل هذه السلاسل؟ 1480 01:09:36,450 --> 01:09:39,160 قلت السلاسل تماما مثل شار * S، أليس كذلك؟ 1481 01:09:39,160 --> 01:09:41,200 فلماذا لا نحرر السلاسل؟ 1482 01:09:41,200 --> 01:09:43,204 >> رئيس 1: أنت فقط ل مجانا إذا كنت mallocing. 1483 01:09:43,204 --> 01:09:44,620 الجمهور: أوه، إذا كنت mallocing. 1484 01:09:44,620 --> 01:09:47,399 رئيس 1: لذا malloc وخالية هما شيئان 1485 01:09:47,399 --> 01:09:49,000 أنه يجب أن يكون دائما معا. 1486 01:09:49,000 --> 01:09:51,630 و مفتوحة، على مقربة F، أمرين يجب أن يكون جنبا إلى جنب. 1487 01:09:51,630 --> 01:09:54,471 في كل تلك الحالات، تحقق لاغية. 1488 01:09:54,471 --> 01:09:54,971 نعم. 1489 01:09:54,971 --> 01:09:57,130 >> الجمهور: مجانا لذلك هو فقط السماح شيء آخر 1490 01:09:57,130 --> 01:09:59,690 ليتم تخزينها هناك بعد وقد استخدم هذا البرنامج ذلك؟ 1491 01:09:59,690 --> 01:10:01,946 >> رئيس 1: انها تقول فقط، حسنا، أنا فعلت مع هذا. 1492 01:10:01,946 --> 01:10:03,320 لا تحتاج للحفاظ على حولها. 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 وإلا فإن جهاز الكمبيوتر الخاص بك فقط أحب ومحاولة الاحتفاظ بها هناك. 1495 01:10:08,190 --> 01:10:10,910 ثم can't-- تشغيله في قضايا الذاكرة في وقت لاحق. 1496 01:10:10,910 --> 01:10:13,660 أردت دائما أن تحريرها ل فإنه يقول جهاز الكمبيوتر الخاص بك، حسنا، أنا 1497 01:10:13,660 --> 01:10:15,190 فعلت مع هذه البقعة من الذاكرة. 1498 01:10:15,190 --> 01:10:17,190 هل يمكن أن يكون عليه مرة أخرى بالنسبة لي لاستخدامها لاحقا. 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 بارد؟ 1501 01:10:20,500 --> 01:10:21,320 نعم. 1502 01:10:21,320 --> 01:10:26,950 >> الجمهور: هكذا كنا٪ د فقط لأن الضعف الذي سيأتي إلى الوراء، 1503 01:10:26,950 --> 01:10:28,330 أو لماذا is-- [غير مسموع]. 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> الجمهور: هل يمكنك استخدام٪ ط؟ 1506 01:10:31,620 --> 01:10:32,760 >> رئيس 1: يمكنك استخدام٪ ط. 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 أي أسئلة اللحظة الأخيرة؟ 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 المضي قدما. 1511 01:10:38,985 --> 01:10:40,610 الجمهور: أنا فقط لدي سؤال سريع. 1512 01:10:40,610 --> 01:10:50,200 لذلك المتغير PTR، that's-- مثل، مع كثافة العمليات * PTR = malloc، 1513 01:10:50,200 --> 01:10:54,142 إن مجرد القول انها لافتا إلى مكان في memory-- 1514 01:10:54,142 --> 01:10:55,600 رئيس 1: هل تريد [غير مسموع]؟ 1515 01:10:55,600 --> 01:10:58,050 الجمهور: هو --that حجم of-- لا، كل شيء على مايرام. 1516 01:10:58,050 --> 01:11:01,292 ولكن انها مجرد لافتا إلى مكان في ذاكرة هذا مجرد مثل أربعة بايت. 1517 01:11:01,292 --> 01:11:02,000 رئيس 1: الحق. 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 حتى malloc حجم يقول الباحث، حسنا، أنا ذاهب للذهاب هرب، 1520 01:11:07,070 --> 01:11:08,780 تجد أربعة بايت من ذاكرة لك. 1521 01:11:08,780 --> 01:11:10,700 عندما يجد أن أربعة بايت من الذاكرة، 1522 01:11:10,700 --> 01:11:14,030 يتيح لك العودة وعنوان من أين يبدأ، 1523 01:11:14,030 --> 01:11:16,160 وهذا ما المخزنة في المؤشر، أو PTR. 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 الخير. 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 يا رفاق تبدو أقل حيرة من معظم الناس عندما أتحدث عن المؤشر، 1528 01:11:21,700 --> 01:11:23,670 لذلك أنا شعور جيد جدا في الوقت الراهن. 1529 01:11:23,670 --> 01:11:24,520 >> حسنا. 1530 01:11:24,520 --> 01:11:27,960 كما هو الحال دائما، وينبغي أن يكون رفاق جميع حصلت على الدرجات pset2 الخاص بك الآن. 1531 01:11:27,960 --> 01:11:32,769 وأنا أعلم أن هناك بعض متزعزع الأمور حيث تقول، صيغة غير صالحة 1532 01:11:32,769 --> 01:11:33,310 أو شيء من هذا. 1533 01:11:33,310 --> 01:11:36,166 إذا كنت الحصول على ذلك، كل من الدرجات الخاصة بك صالحة على جانبي. 1534 01:11:36,166 --> 01:11:38,040 حتى أستطيع أن أرسل لك لقطات من الدرجات الخاصة بك. 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 فقط اسمحوا لي أن أعرف، وكذلك إذا كنت فقدان أي شيء أو الدرجات 1537 01:11:41,760 --> 01:11:43,060 لا يبدو أن من المنطقي. 1538 01:11:43,060 --> 01:11:43,720 تأتي لي. 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> لقد كنت فخورة لك اللاعبين بالفعل، لذلك يبقيه. 1541 01:11:48,830 --> 01:11:50,640 ولها راحة جيدة من الاسبوع الخاص بك. 1542 01:11:50,640 --> 01:11:53,440 أنا متأكد من أني سوف نرى بعض من لك في ساعات العمل. 1543 01:11:53,440 --> 01:11:55,414