Tagapagsalita: magsulat ng isang programa Hayaan na prompt ng gumagamit para sa dalawang mga string at pagkatapos ay i-ulat kung ang mga string ay pareho o hindi pareho. Nasimulan ko na sa amin off dito sa pamamagitan ng printf sa pagtawag nang dalawang beses at pagtawag GetString dalawang beses, pag-iimbak ng mga return mga halaga sa s at t, ayon sa pagkakabanggit. Ngayon, ang aking instincts upang ihambing ang dalawang mga string ay magiging upang gamitin ang pamilyar pagkakapantay-pantay ng operator - kung katumbas s ay katumbas ng t. Pagkatapos pupuntahan ko sige at i-print out "na na-type mo ang parehong bagay! Iba Pa, kung hindi iyon totoo, lang ako pagpunta sa i-type printf ("Ikaw nai-type iba't ibang bagay! Medyo prangka - Lamang ako ng paghahambing ng mga laban t, at kung ang mga ito ay pantay-pantay, nagpi-print out ng maraming. Ni-compile at patakbuhin ang program na ito Hayaan. Gawing ihambing 0. / Paghambingin 0, sabihin nating ang isang bagay, kumusta, sabihin isang bagay, kumusta. Sa kasamaang palad, Iniisip ng mga programa na hindi ko na nai-type iba't ibang mga bagay, kahit na ako malinaw na nai-type "kumusta" ang parehong paraan sa parehong oras. Ngayon, kung bakit maaaring maging iyon? Well, ito ay lumiliko out na ang lahat ng ito oras, mga string ay isang bit higit pa kumplikadong kaysa sa isang pagkakasunod-sunod ng mga character sa ilalim ng hood. Sa katotohanan, isang string ay isang pointer o isang address, partikular na ang address sa mga unang character sa na pagkakasunud-sunod ng mga character. At kaya kapag ihambing namin s laban t may pantay na pantay lagdaan, kami ay talaga nagtatanong, ay ang address na ito pantay pantay sa address na ito? At na hindi pagpunta sa maging ang kaso kung ang gumagamit ay nag-type sa dalawang magkaibang mga string at ang tinatawag naming GetString dalawang beses upang makakuha ng mga ito, dahil ang memorya Ginagamit na GetString upang i-imbak ang unang string ay maaaring maging dito sa RAM, ngunit ang memorya na ginagamit ng GetString upang mag-imbak ang ikalawang string ay pagpunta maging dito sa RAM. At syempre, pagkatapos, ang dalawang chunks ng memorya ay may iba't ibang address para sa kanilang pinakaunang character. Kaya ay mga katumbas na katumbas ng T? Well, hindi. Kung s at t ay tumuturo sa iba't ibang chunks ng memorya, tulad ng kung paano maging sa pamamagitan ng GetString pagtawag sa dalawang beses, ang mga ito ay hindi, sa katunayan, pagpunta sa maging ang parehong. Kaya tila na maging ang kaso na iyon upang paghambingin ang dalawang mga string sa madaling maunawaan paraan na inaasahan namin, character para sa na character, kailangan namin ng isa pang diskarteng sama-sama.