المتحدث: دعونا كتابة البرنامج الذي يطالب المستخدم سلسلتين و تقارير ثم ما إذا كانت تلك السلاسل هي نفسها أو ليست هي نفسها. لقد بدأت بالفعل قبالة لنا هنا من قبل استدعاء printf مرتين والدعوة GetString مرتين، تخزين عودة القيم في ق ور، على التوالي. 

الآن، غرائزي لمقارنة هذين سوف تكون سلاسل لاستخدام مألوفة مشغل المساواة - إذا ق يساوي يساوي ر. ثم انا ذاهب الى المضي قدما والطباعة خروج "يمكنك كتابة نفس الشيء! آخر، إذا هذا ليس صحيحا، وأنا ببساطة سوف اكتب printf ("أنت كتبته أشياء مختلفة! 

اضحة إلى حد ما - أنا ببساطة مقارنة ضد ر، واذا كانا لا يزالان على قدم المساواة، طبع القدر. دعونا تجميع وتشغيل هذا البرنامج. جعل مقارنة 0. / مقارنة 0، تقول شيئا، مرحبا، أقول شيئا، مرحبا. 

للأسف، يعتقد برنامج عندي كتابة أشياء مختلفة، على الرغم من أنني كتبته بوضوح "مرحبا" لل بنفس الطريقة كل مرة. الآن، لماذا يمكن أن يكون؟ 

كذلك، اتضح أن كل هذا الوقت، كانت سلاسل أكثر قليلا تعقيدا من سلسلة من الأحرف تحت غطاء محرك السيارة. في الواقع، سلسلة هو مؤشر أو عنوان، وتحديدا في العنوان الحرف الأول في هذا تسلسل من الأحرف. 

وحتى عندما نقارن ضد ر مع علامة المساواة على قدم المساواة، ونحن المطلوب في الواقع، وهذا هو عنوان يساوي يساوي هذا العنوان؟ وهذا لن يكون الحال إذا تمت كتابة المستخدم في اثنين من مختلف سلاسل ولقد دعا GetString مرتين للحصول عليها، وذلك لأن الذاكرة يستخدم هذا GetString لتخزين الأولى قد يكون هنا في سلسلة من ذاكرة الوصول العشوائي، ولكن الذاكرة التي يستخدمها لتخزين GetString السلسلة الثانية يجري أن أكون هنا في ذاكرة الوصول العشوائي. وبطبيعة الحال، إذن، تلك القطع اثنين من الذاكرة لديهم عناوين مختلفة ل الأولى شخصياتهم. 

ذلك هو قدم المساواة مع الرجل على قدم المساواة لر؟ حسنا، لا. إذا ق ر وتشير إلى مختلف قطع من الذاكرة، لأنها ستكون من قبل استدعاء GetString مرتين، وانهم لا، في الواقع، سوف تكون هي نفسها. لذلك يبدو أن هذا هو الحال الذي ل مقارنة سلسلتين في بديهية الطريقة التي نتوقع، وحرف ل الطابع، ونحن بحاجة أسلوب آخر تماما.