SPEAKER: Mari kita menulis program yang menggesa pengguna untuk dua tali dan kemudian melaporkan sama ada mereka tali adalah sama atau tidak sama. Saya sudah mula kami turun di sini oleh memanggil printf dua kali dan memanggil GetString dua kali, menyimpan pulangan nilai-nilai dalam s dan t, masing-masing. 

Sekarang, naluri saya untuk membandingkan kedua-dua tali adalah dengan menggunakan biasa pengendali kesaksamaan - jika s sama sama t. Kemudian saya akan teruskan dan cetak keluar "Anda ditaip perkara yang sama! Lagi, jika yang tidak benar, saya hanya akan menaip printf ("Anda ditaip perkara yang berbeza! 

Agak mudah - Saya hanya membandingkan s terhadap t, dan jika mereka yang sama, mencetak sebanyak. Mari kita menyusun dan menjalankan program ini. Buat membandingkan 0. / Membandingkan 0, mengatakan sesuatu, hello, berkata sesuatu, hello. 

Malangnya, program yang difikirkan saya telah ditaip perkara yang berbeza, walaupun saya ditaip dengan jelas "hello" yang Cara yang sama kedua-dua kali. Sekarang, mengapa yang mungkin? 

Nah, ternyata bahawa semua ini masa, tali telah sedikit lebih kompleks daripada jujukan aksara di bawah hood. Pada hakikatnya, tali adalah penunjuk atau alamat, khususnya alamat watak yang pertama di jujukan aksara. 

Dan sebagainya apabila kita bandingkan s terhadap t dengan tanda yang sama yang sama, kami sebenarnya bertanya, adalah alamat ini sama sama dengan alamat ini? Dan itu tidak akan menjadi kes itu jika pengguna telah ditaip dalam dua yang berbeza tali dan kami dipanggil GetString dua kali untuk mendapatkan mereka, kerana memori GetString yang menggunakan untuk menyimpan yang pertama tali mungkin berada di sini dalam RAM, tetapi memori yang GetString menggunakan untuk menyimpan rentetan kedua akan untuk berada di sini dalam RAM. Dan sudah tentu, kemudian, kedua-dua ketulan ingatan mempunyai alamat yang berbeza untuk watak-watak mereka yang pertama. 

Begitu juga s sama sama dengan t? Nah, tidak. Jika s dan t menunjuk kepada yang berbeza ketulan memori, kerana mereka akan dengan memanggil GetString dua kali, mereka tidak, sebenarnya, akan menjadi sama. Jadi seolah-olah kes bahawa untuk membandingkan dua tali di intuitif cara yang kita jangkakan, watak untuk watak, kita perlu teknik lain sama sekali.