>> SPEAKER: Írjunk egy programot, amely megkérdezi a felhasználót a két szöveget és
majd közli, hogy azok a húrok jelentése azonos vagy nem azonos.
Már kezdtem minket itt hívás printf kétszer hívás
GetString kétszer, tárolása a visszatérés értékeket s és t, ill.
>> Nos, az én ösztönök összehasonlítani a két húrok lenne, hogy használja az ismerős
egyenlőség operátor -
ha s értéke egyenlő t.
Aztán megyek előre, és a nyomtatási out "Te gépelt ugyanaz!
Különben, ha ez nem igaz, én csak majd írja printf ("Te gépelt
különböző dolog!
>> Meglehetősen egyszerű -
Én egyszerűen csak összehasonlításával s ellen t, és ha ők egyenlő,
nyomtat ki, mint sok.
Nézzük lefordítani és futtatni ezt a programot.
Legyen összehasonlításba 0. / Összehasonlítása 0, mond valamit, hello,
mondani valamit, helló.
>> Sajnos, a program azt hiszi, gépelt különböző dolog, bár én
egyértelműen gépelt "hello" a Ugyanígy mindkét alkalommal.
Nos, miért lenne az?
>> Nos, kiderült, hogy ez az egész idő, vonósok volna egy kicsit
összetettebb, mint egy karaktersor a motorháztető alatt.
A valóságban, egy sor egy mutató, vagy cím, konkrétan a cím
Az első karakter az adott karaktersor.
>> És ha összehasonlítjuk s ellen t az azonos egyenlőségjel vagyunk
valójában azt kérdezi, ez a cím azonos azonos erre a címre?
És ez nem lesz a helyzet, ha a felhasználó által beírt két különböző
vonósok és mi már az úgynevezett getString kétszer kell kérni őket, mert a memória
hogy getString használ tárolja az első karakterlánc lehet itt a RAM-ban, de a
memória getString tárolására használt A második szöveg megy
hogy itt a RAM-ban.
És persze, akkor, a két darabokat memória különböző címek
az első karakter.
>> Tehát s egyenlő egyenlő t?
Nos, nem.
Ha az s és t mutat a különböző darabokat a memória, mivel ezek lennének által
hívás getString kétszer, ők nem, sőt, lesz ugyanaz.
Tehát úgy tűnik, hogy a helyzet, hogy a összehasonlítani két karakterlánc az intuitív
módon, hogy azt várjuk, karakter karakter, szükségünk van egy másik technika
összesen.