>> 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.