1 00:00:00,000 --> 00:00:00,520 2 00:00:00,520 --> 00:00:03,530 >> SPEAKER: Idemo napisati program koji traži od korisnika za dvije žice i 3 00:00:03,530 --> 00:00:07,170 zatim izvješća jesu li ti žice su jednaki ili nisu isti. 4 00:00:07,170 --> 00:00:10,290 Već sam nas započela ovdje nazivajući printf dva puta i pozivom 5 00:00:10,290 --> 00:00:14,520 GetString dva puta, spremanje povratak vrijednosti s i t, respektivno. 6 00:00:14,520 --> 00:00:17,960 >> Sada, moji instinkti usporediti ta dva žice da bi se koristiti upoznati 7 00:00:17,960 --> 00:00:19,160 Operator jednakosti - 8 00:00:19,160 --> 00:00:22,070 ako je jednako jednako t. 9 00:00:22,070 --> 00:00:28,120 Onda ću ići naprijed i ispis out "Upisali ste istu stvar! 10 00:00:28,120 --> 00:00:35,190 Inače, ako to nije istina, ja sam jednostavno će se upisati printf ("Vi upisali 11 00:00:35,190 --> 00:00:37,880 različite stvari! 12 00:00:37,880 --> 00:00:38,850 >> Prilično jednostavan - 13 00:00:38,850 --> 00:00:41,820 Ja sam jednostavno uspoređujući s. protiv t, a ako su oni jednaki, 14 00:00:41,820 --> 00:00:43,250 ispis koliko. 15 00:00:43,250 --> 00:00:45,450 Idemo sastaviti i pokrenuti ovaj program. 16 00:00:45,450 --> 00:00:51,950 Napravite usporedbu 0. / Usporedbu 0, nešto reći, hello, 17 00:00:51,950 --> 00:00:54,200 nešto reći, bok. 18 00:00:54,200 --> 00:00:56,870 >> Nažalost, program misli da sam upisali različite stvari, iako sam 19 00:00:56,870 --> 00:00:59,530 jasno upisali "Hello" isti način oba puta. 20 00:00:59,530 --> 00:01:00,850 Sada, zašto bi to moglo biti? 21 00:01:00,850 --> 00:01:03,750 >> Pa, ispada da je sve to Vrijeme, žice su malo više 22 00:01:03,750 --> 00:01:06,780 kompleks od niza znakova ispod poklopca motora. 23 00:01:06,780 --> 00:01:11,450 U stvarnosti, niz je pokazivač ili adresa, posebno adresa 24 00:01:11,450 --> 00:01:14,640 na prvi znak u koji niz znakova. 25 00:01:14,640 --> 00:01:18,640 >> I tako, kada usporedimo s. protiv t s jednakim znakom jednakosti, mi smo 26 00:01:18,640 --> 00:01:23,200 zapravo pita, je li to adresa jednaka jednaka na ovu adresu? 27 00:01:23,200 --> 00:01:26,850 A to neće biti slučaj ako Korisnik je upisali u dva različita 28 00:01:26,850 --> 00:01:30,370 žice i mi smo pozvani GetString dva puta kako bi ih dobili, jer je memorija 29 00:01:30,370 --> 00:01:34,480 da GetString koristi za pohranu prvi Niz bi moglo biti ovdje u RAM-a, ali 30 00:01:34,480 --> 00:01:37,120 memorije koji GetString koristi za pohranu Drugi niz ide 31 00:01:37,120 --> 00:01:38,760 biti ovdje u RAM. 32 00:01:38,760 --> 00:01:42,380 I naravno, dakle, ta dva komadi memorije imaju različite adrese za 33 00:01:42,380 --> 00:01:44,220 njihov prvi likovi. 34 00:01:44,220 --> 00:01:46,120 >> Tako je s jednako jednako t? 35 00:01:46,120 --> 00:01:46,885 Pa, nema. 36 00:01:46,885 --> 00:01:50,510 Ako je i t ukazuju na različite komadi sjećanja, kao što bi se po 37 00:01:50,510 --> 00:01:54,140 pozivom GetString dva puta, oni nisu, Zapravo, bit će isto. 38 00:01:54,140 --> 00:01:57,700 Dakle, čini se da je slučaj da se usporediti dva konce u intuitivno 39 00:01:57,700 --> 00:02:01,050 Način na koji smo očekivali, znak za karakter, treba nam još jednu tehniku 40 00:02:01,050 --> 00:02:02,300 uopce. 41 00:02:02,300 --> 00:02:03,902