1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. Malan: Recimo napisati program da pozove uporabnika za vrvico in 3 00:00:03,140 --> 00:00:07,210 nato nadaljujte, da natisnete ta niz Znak za enega znakov na vrstico. 4 00:00:07,210 --> 00:00:10,570 Zdaj v preteklosti, bi storil Verjetno s kvadratnim nosilca zapisa, 5 00:00:10,570 --> 00:00:13,680 učinkovito zdravljenje niz je niz znakov. 6 00:00:13,680 --> 00:00:17,200 >> Ampak tokrat, dajmo namesto zdravljenje Niz za tisto, kar v resnici pomeni, da 7 00:00:17,200 --> 00:00:18,770 Kazalec oziroma naslov. 8 00:00:18,770 --> 00:00:22,420 Natančneje, naslov lik, v resnici naslov 9 00:00:22,420 --> 00:00:25,740 prvi znak, v zaporedju znaki, da smo skupaj poznajo 10 00:00:25,740 --> 00:00:26,860 kot niz. 11 00:00:26,860 --> 00:00:30,740 >> Poglejmo najprej razglasi niz za kaj je v resnici, char *. 12 00:00:30,740 --> 00:00:31,770 In bomo poklical to je to. 13 00:00:31,770 --> 00:00:34,670 In potem ji dodelite vrnitev Vrednost get niza. 14 00:00:34,670 --> 00:00:36,380 >> Dajmo zraven še nekaj preverjati napake. 15 00:00:36,380 --> 00:00:42,920 Če je, je nična, pa se takoj vrne tako da ne bomo slučajno 16 00:00:42,920 --> 00:00:45,630 dereference tem null kazalec. 17 00:00:45,630 --> 00:00:49,750 >> Naslednji, dajmo ponoviti čez znakov s kot sledi. 18 00:00:49,750 --> 00:00:52,390 Za notr, i dobi 0. 19 00:00:52,390 --> 00:00:55,890 n je enak dolžini niza s. 20 00:00:55,890 --> 00:00:58,050 Ali je to tako dolgo, kot je manjše od n. 21 00:00:58,050 --> 00:01:00,690 In na vsaki ponovitvi, prirastek i. 22 00:01:00,690 --> 00:01:02,710 >> In kaj želimo narediti na vsaki ponovitvi? 23 00:01:02,710 --> 00:01:06,180 Pojdimo zdaj natisniti na vsaki ponovitvi sam znak 24 00:01:06,180 --> 00:01:07,910 sledi novo vrstico. 25 00:01:07,910 --> 00:01:10,010 Torej, kaj storiti, karakter želimo natisniti? 26 00:01:10,010 --> 00:01:16,850 Predlagam, da gremo na naslov , ki je enak vsoti s plus i. 27 00:01:16,850 --> 00:01:18,390 >> Zakaj ta izraz? 28 00:01:18,390 --> 00:01:22,130 No, spomnim, da je shranjena v ih je naslov prvega znaka 29 00:01:22,130 --> 00:01:23,490 v našem nizu, s. 30 00:01:23,490 --> 00:01:27,470 Medtem pa sem se poveča na vsaka ponovitev, tako da se začne pri 0, 31 00:01:27,470 --> 00:01:29,590 nato gre proti 1, potem gre za 2. 32 00:01:29,590 --> 00:01:33,870 >> Torej, z drugimi besedami, s plus i učinkovito predstavlja naslov 33 00:01:33,870 --> 00:01:35,990 lik i-v s. 34 00:01:35,990 --> 00:01:40,830 Torej, če gremo na ta naslov preko operator *, bomo šli na 35 00:01:40,830 --> 00:01:42,650 i-ti znak v nizu. 36 00:01:42,650 --> 00:01:45,700 In to je vrednost, ki bo Namesto naše ogrado, 37 00:01:45,700 --> 00:01:46,840 odstotkov C. 38 00:01:46,840 --> 00:01:47,840 >> Oglejmo potrdite toliko. 39 00:01:47,840 --> 00:01:51,720 Rešimo, pripravijo in zagon tega programa. 40 00:01:51,720 --> 00:01:55,990 Naredite napotke, pika Slash kazalca. 41 00:01:55,990 --> 00:01:58,780 In zdaj sem mu dam Niz kot zdravo. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> In res, vidim H-E-L-L-O, z vsak znak v svoji vrstici. 44 00:02:03,770 --> 00:02:05,410