Gjuha: Le të shkruaj një program që bën të përdoruesit për dy vargjet dhe pastaj raporton nëse këto vargjet janë të njëjta ose jo njëjtë. Unë kam filluar të na jashtë këtu me duke e quajtur printf dy herë dhe duke e quajtur GetString dy herë, ruajtjen e kthimit Vlerat në s dhe t, respektivisht. Tani, instinktet e mia për të krahasuar këto dy vargjet do të ishte për të përdorur të njohur Operatori barazia - në qoftë se s është e barabartë e barabartë me t. Atëherë unë jam duke shkuar për të shkuar përpara dhe të shtypura out "Ju shtypur të njëjtën gjë! Por në rast se kjo nuk është e vërtetë, unë jam thjesht do të tipit printf ("Ju shtypur gjëra të ndryshme! Mjaft i hapur - Unë jam thjesht duke krahasuar s kundër t, dhe në qoftë se ata janë të barabartë, shtypjen nga sa më shumë. Le të përpilojnë dhe të drejtuar këtë program. Bëni të krahasuar 0. / Të krahasuar 0, thonë diçka, hello, thonë diçka, përshëndetje. Për fat të keq, programi mendon se unë kam shtypur gjëra të ndryshme, edhe pse unë shtypur në mënyrë të qartë "hello" njëjtën mënyrë dy herë. Tani, pse mund që të jetë? E pra, ajo rezulton se e tërë kjo kohë, vargjet kanë qenë pak më shumë komplekse se një sekuencë e karaktere nën kapuç. Në realitet, një varg është një tregues ose një adresa, konkretisht adresa të karakterit të parë në se rend të karaktereve. Dhe kështu që kur krahasojmë s kundër t me shenjë të barabartë të barabartë, ne jemi në të vërtetë duke i kërkuar, është kjo adresë barabartë barabartë me këtë vendndodhje? Dhe kjo nuk do të jetë rasti nëse përdoruesi ka shtypur në dy të ndryshme vargjet dhe ne kemi quajtur getString dy herë për të marrë ato, sepse kujtesës që getString përdor për të ruajtur e parë string mund të jetë këtu në RAM, por kujtesës që getString përdor për të ruajtur string dytë do që jam këtu në RAM. Dhe sigurisht, atëherë, këto dy copa kujtesës kanë adresa të ndryshme për karakteret e tyre të parë. Pra, është e barabartë e barabartë me t? E pra, nuk ka. Nëse s dhe t janë treguar të ndryshme chunks e kujtesës, si ata do të jenë nga duke e quajtur getString dy herë, ata nuk janë, në të vërtetë, do të jenë të njëjta. Pra, kjo duket të jetë rasti që të krahasohen dy vargjet në intuitiv mënyrë që ne presim, karakter për karakter, ne kemi nevojë për një tjetër teknikë krejt.