1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> David J. Malan: Ajmo napisati program koji traži od korisnika za niz i 3 00:00:03,140 --> 00:00:07,210 zatim nastavite tiskati taj niz znak za znakova po retku. 4 00:00:07,210 --> 00:00:10,570 Sada je u prošlosti, mi bi učinili Vjerojatno s kvadratnom nosača zapisa, 5 00:00:10,570 --> 00:00:13,680 učinkovito liječenje niza je niz znakova. 6 00:00:13,680 --> 00:00:17,200 >> Ali ovaj put, neka je, umjesto liječenje string za ono što stvarno jest, 7 00:00:17,200 --> 00:00:18,770 pokazivač ili adresa. 8 00:00:18,770 --> 00:00:22,420 Naime, adresa karakter, zapravo adresa 9 00:00:22,420 --> 00:00:25,740 Prvi znak u nizu likovi koje smo kolektivno znaju 10 00:00:25,740 --> 00:00:26,860 kao niz. 11 00:00:26,860 --> 00:00:30,740 >> Neka prvi proglasiti niz za ono što stvarno jest, char *. 12 00:00:30,740 --> 00:00:31,770 A mi ćemo nazvati to je. 13 00:00:31,770 --> 00:00:34,670 A onda je ustupiti povratak Vrijednost get nizu. 14 00:00:34,670 --> 00:00:36,380 >> Idemo naprijed napraviti neki provjera. 15 00:00:36,380 --> 00:00:42,920 Ako je nula, neka se odmah vrati tako da mi slučajno ne bi 16 00:00:42,920 --> 00:00:45,630 dereference tom null pointer. 17 00:00:45,630 --> 00:00:49,750 >> Dalje, neka je ponoviti više likovi u kako slijedi. 18 00:00:49,750 --> 00:00:52,390 Za int, i dobiva 0. 19 00:00:52,390 --> 00:00:55,890 n jednaka duljine od s.. 20 00:00:55,890 --> 00:00:58,050 Učinite to tako dugo dok sam je manji od n. 21 00:00:58,050 --> 00:01:00,690 I na svakoj iteraciji, prirast i. 22 00:01:00,690 --> 00:01:02,710 >> I ono što želimo učiniti na svakoj iteraciji? 23 00:01:02,710 --> 00:01:06,180 Idemo sada ispisati na svakoj iteraciji jedan znak 24 00:01:06,180 --> 00:01:07,910 slijedi novi redak. 25 00:01:07,910 --> 00:01:10,010 Pa, ono lik učiniti želimo ispisati? 26 00:01:10,010 --> 00:01:16,850 Ja predlažem da odemo na adresu koja je jednaka zbroju s plus ja. 27 00:01:16,850 --> 00:01:18,390 >> Sada, zašto se taj izraz? 28 00:01:18,390 --> 00:01:22,130 Pa, podsjetiti da je pohranjena u sekundi je adresu prvog znaka 29 00:01:22,130 --> 00:01:23,490 u našem nizu, je. 30 00:01:23,490 --> 00:01:27,470 U međuvremenu, ja se porastao na svake iteracije tako da se počne na 0, 31 00:01:27,470 --> 00:01:29,590 onda ide na 1, a zatim odlazi u 2.. 32 00:01:29,590 --> 00:01:33,870 >> Dakle, drugim riječima, s plus i učinkovito predstavlja adresu 33 00:01:33,870 --> 00:01:35,990 i-ti znak u sekundi. 34 00:01:35,990 --> 00:01:40,830 Pa ako ćemo ići na tu adresu putem operatora *, mi ćemo biti idući u 35 00:01:40,830 --> 00:01:42,650 i-ti znak u nizu. 36 00:01:42,650 --> 00:01:45,700 I to je vrijednost koja će biti zamijeniti za naše rezervirano mjesto, 37 00:01:45,700 --> 00:01:46,840 posto C. 38 00:01:46,840 --> 00:01:47,840 >> Idemo potvrditi koliko. 39 00:01:47,840 --> 00:01:51,720 Idemo spasiti, sastaviti i pokrenuti ovaj program. 40 00:01:51,720 --> 00:01:55,990 Napravite naputke, Dot Slash naputke. 41 00:01:55,990 --> 00:01:58,780 A sada ću dati string kao bok. 42 00:01:58,780 --> 00:01:59,600 Upišite. 43 00:01:59,600 --> 00:02:03,770 >> I doista, vidim H-E-L-L-a, s svaki char na vlastitu liniju. 44 00:02:03,770 --> 00:02:05,410