1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> المتحدث: دعونا كتابة البرنامج الذي يطالب المستخدم سلسلتين و 3 00:00:03,530 --> 00:00:07,170 تقارير ثم ما إذا كانت تلك السلاسل هي نفسها أو ليست هي نفسها. 4 00:00:07,170 --> 00:00:10,290 لقد بدأت بالفعل قبالة لنا هنا من قبل استدعاء printf مرتين والدعوة 5 00:00:10,290 --> 00:00:14,520 GetString مرتين، تخزين عودة القيم في ق ور، على التوالي. 6 00:00:14,520 --> 00:00:17,960 >> الآن، غرائزي لمقارنة هذين سوف تكون سلاسل لاستخدام مألوفة 7 00:00:17,960 --> 00:00:19,160 مشغل المساواة - 8 00:00:19,160 --> 00:00:22,070 إذا ق يساوي يساوي ر. 9 00:00:22,070 --> 00:00:28,120 ثم انا ذاهب الى المضي قدما والطباعة خروج "يمكنك كتابة نفس الشيء! 10 00:00:28,120 --> 00:00:35,190 آخر، إذا هذا ليس صحيحا، وأنا ببساطة سوف اكتب printf ("أنت كتبته 11 00:00:35,190 --> 00:00:37,880 أشياء مختلفة! 12 00:00:37,880 --> 00:00:38,850 >> اضحة إلى حد ما - 13 00:00:38,850 --> 00:00:41,820 أنا ببساطة مقارنة ضد ر، واذا كانا لا يزالان على قدم المساواة، 14 00:00:41,820 --> 00:00:43,250 طبع القدر. 15 00:00:43,250 --> 00:00:45,450 دعونا تجميع وتشغيل هذا البرنامج. 16 00:00:45,450 --> 00:00:51,950 جعل مقارنة 0. / مقارنة 0، تقول شيئا، مرحبا، 17 00:00:51,950 --> 00:00:54,200 أقول شيئا، مرحبا. 18 00:00:54,200 --> 00:00:56,870 >> للأسف، يعتقد برنامج عندي كتابة أشياء مختلفة، على الرغم من أنني 19 00:00:56,870 --> 00:00:59,530 كتبته بوضوح "مرحبا" لل بنفس الطريقة كل مرة. 20 00:00:59,530 --> 00:01:00,850 الآن، لماذا يمكن أن يكون؟ 21 00:01:00,850 --> 00:01:03,750 >> كذلك، اتضح أن كل هذا الوقت، كانت سلاسل أكثر قليلا 22 00:01:03,750 --> 00:01:06,780 تعقيدا من سلسلة من الأحرف تحت غطاء محرك السيارة. 23 00:01:06,780 --> 00:01:11,450 في الواقع، سلسلة هو مؤشر أو عنوان، وتحديدا في العنوان 24 00:01:11,450 --> 00:01:14,640 الحرف الأول في هذا تسلسل من الأحرف. 25 00:01:14,640 --> 00:01:18,640 >> وحتى عندما نقارن ضد ر مع علامة المساواة على قدم المساواة، ونحن 26 00:01:18,640 --> 00:01:23,200 المطلوب في الواقع، وهذا هو عنوان يساوي يساوي هذا العنوان؟ 27 00:01:23,200 --> 00:01:26,850 وهذا لن يكون الحال إذا تمت كتابة المستخدم في اثنين من مختلف 28 00:01:26,850 --> 00:01:30,370 سلاسل ولقد دعا GetString مرتين للحصول عليها، وذلك لأن الذاكرة 29 00:01:30,370 --> 00:01:34,480 يستخدم هذا GetString لتخزين الأولى قد يكون هنا في سلسلة من ذاكرة الوصول العشوائي، ولكن 30 00:01:34,480 --> 00:01:37,120 الذاكرة التي يستخدمها لتخزين GetString السلسلة الثانية يجري 31 00:01:37,120 --> 00:01:38,760 أن أكون هنا في ذاكرة الوصول العشوائي. 32 00:01:38,760 --> 00:01:42,380 وبطبيعة الحال، إذن، تلك القطع اثنين من الذاكرة لديهم عناوين مختلفة ل 33 00:01:42,380 --> 00:01:44,220 الأولى شخصياتهم. 34 00:01:44,220 --> 00:01:46,120 >> ذلك هو قدم المساواة مع الرجل على قدم المساواة لر؟ 35 00:01:46,120 --> 00:01:46,885 حسنا، لا. 36 00:01:46,885 --> 00:01:50,510 إذا ق ر وتشير إلى مختلف قطع من الذاكرة، لأنها ستكون من قبل 37 00:01:50,510 --> 00:01:54,140 استدعاء GetString مرتين، وانهم لا، في الواقع، سوف تكون هي نفسها. 38 00:01:54,140 --> 00:01:57,700 لذلك يبدو أن هذا هو الحال الذي ل مقارنة سلسلتين في بديهية 39 00:01:57,700 --> 00:02:01,050 الطريقة التي نتوقع، وحرف ل الطابع، ونحن بحاجة أسلوب آخر 40 00:02:01,050 --> 00:02:02,300 تماما. 41 00:02:02,300 --> 00:02:03,902