>> GARSIAKALBIS: Leiskite parašyti programą, kuri paragina dvi eilutes ir vartotoją
tada ataskaitos ar tos stygos yra tas pats, ar ne tas pats.
Aš jau pradėjau mums ne čia skambina printf du kartus ir skambina
GetString du kartus, saugoti grąžą vertybės s ir t, atitinkamai.
>> Dabar, mano instinktai palyginti šias dvi stygos būtų naudoti susipažinę
lygybės operatorius -
jei ai Lygu lygu k.
Tada aš ruošiuosi eiti į priekį ir spausdinti iš "Jūs įvedėte tą patį!
Kitur, jei tai ne tiesa, aš tiesiog ketina įvesti printf ("Jūs įvedėte
skirtingi dalykai!
>> Gana paprasta -
Aš paprasčiausiai palyginant s prieš t, ir jei jie vienodi,
spausdinti kiek.
Leiskite sudaryti ir vykdyti šią programą.
Padaryti palyginti 0. / Palyginti 0, ką nors pasakyti, labas,
pasakyti, labas.
>> Deja, programa mano aš įvedėte skirtingus dalykus, nors aš
aiškiai įvedėte "labas" taip pat, abu kartus.
Dabar, kodėl tai galėtų būti?
>> Na, atrodo, kad visa tai laikas, siūlai buvo šiek tiek daugiau
sudėtingesnis nei simbolių seka po gaubtu.
Iš tikrųjų, eilutė yra žymeklis arba adresas, konkrečiai adresas
pirmojo požymio, kad seka simbolių.
>> Ir todėl, kai mes lyginame s prieš t su vienodo lygybės ženklą, mes
iš tikrųjų klausia, ar šis adresas lygūs lygūs šiuo adresu?
Ir tai nebus atveju, jei vartotojas turi įvesti dviejų skirtingų
styginiams ir mes vadinami GetString du kartus juos gauti, nes atmintis
kad GetString naudoja laikyti pirmas Styga gali būti čia RAM, bet
atmintis, GetString naudoja laikyti antra eilutė vyksta
būti čia RAM.
Ir, žinoma, po to, šie du gabaliukus atmintis turi skirtingus adresus
jų pirmųjų simbolių.
>> Taigi yra s lygios lygios t?
Na, ne.
Jei s ir t yra nukreipta į skirtingas gabaliukus atminties, nes jie būtų per
skambina GetString du kartus, jie ne, iš tiesų, bus tas pats.
Taigi atrodo, kad atvejis, kad į palyginti dvi eilutes intuityvus
Taip, kad mes tikimės, personažas pobūdžio, mes turime kitą techniką
apskritai.