>> SPEAKER: Mari kita menulis sebuah program yang meminta pengguna untuk dua string dan
kemudian melaporkan apakah mereka string adalah sama atau tidak sama.
Aku sudah mulai kita di sini oleh memanggil printf dua kali dan menelepon
GetString dua kali, menyimpan return nilai dalam s dan t masing-masing.
>> Sekarang, naluri saya untuk membandingkan kedua string akan menggunakan akrab
operator kesetaraan -
jika s sama sama t.
Lalu aku akan pergi ke depan dan mencetak out "Anda mengetik hal yang sama!
Yang lain, jika itu tidak benar, aku hanya akan mengetik printf ("Anda mengetik
hal yang berbeda!
>> Cukup mudah -
Saya hanya membandingkan melawan t, dan jika mereka sama,
mencetak sebanyak.
Mari kita mengkompilasi dan menjalankan program ini.
Membuat bandingkan 0. / Membandingkan 0, mengatakan sesuatu, halo,
mengatakan sesuatu, halo.
>> Sayangnya, program ini mengira aku sudah mengetik hal yang berbeda, meskipun saya
jelas mengetik "halo" yang cara yang sama kedua kali.
Sekarang, mengapa bisa begitu?
>> Nah, ternyata semua ini waktu, string telah sedikit lebih
kompleks daripada urutan karakter di bawah tenda.
Pada kenyataannya, string adalah pointer atau alamat, khususnya alamat
dari karakter pertama dalam urutan karakter.
>> Dan ketika kita membandingkan melawan t dengan tanda sama sama, kami
benar-benar bertanya, apakah alamat ini sama sama dengan alamat ini?
Dan itu tidak akan terjadi jika pengguna telah diketik dalam dua berbeda
string dan kami sudah menelepon dua kali GetString untuk mendapatkan mereka, karena memori
GetString yang menggunakan untuk menyimpan pertama String mungkin berada di sini dalam RAM, tetapi
memori yang GetString digunakan untuk menyimpan string kedua akan
berada di sini dalam RAM.
Dan tentu saja, kemudian, kedua potongan memori memiliki alamat yang berbeda untuk
karakter pertama mereka.
>> Jadi s sama sama dengan t?
Nah, tidak ada.
Jika s dan t menunjuk ke berbagai potongan memori, karena mereka akan dengan
memanggil GetString dua kali, mereka tidak, pada kenyataannya, akan menjadi sama.
Jadi tampaknya menjadi kasus bahwa untuk membandingkan dua string di intuitif
cara yang kita harapkan, karakter karakter, kita perlu teknik lain
sama sekali.