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