1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. Malan: Olgem kirjutada programm mis küsib kasutajalt string ja 3 00:00:03,140 --> 00:00:07,210 siis edasi tähekombinatsioon printimiseks hieroglüüf iseloomu üks rea kohta. 4 00:00:07,210 --> 00:00:10,570 Nüüd minevikus, me oleks seda teinud tõenäoliselt koos nurksulg märke, 5 00:00:10,570 --> 00:00:13,680 tõhusalt ravida string on array tähemärki. 6 00:00:13,680 --> 00:00:17,200 >> Aga seekord, teeme selle asemel ravida string, mida see tõesti on, 7 00:00:17,200 --> 00:00:18,770 pointer või aadress. 8 00:00:18,770 --> 00:00:22,420 Täpsemalt aadress iseloomu, tõesti aadress 9 00:00:22,420 --> 00:00:25,740 Esimene olemus selles järjestuses märgid, et me ühiselt tea 10 00:00:25,740 --> 00:00:26,860 kui string. 11 00:00:26,860 --> 00:00:30,740 >> Vaatame kõigepealt kuulutama stringi mida ta tegelikult on, char *. 12 00:00:30,740 --> 00:00:31,770 Ja me kutsume seda s. 13 00:00:31,770 --> 00:00:34,670 Ja siis anna see tagasipöördumine väärtus get string. 14 00:00:34,670 --> 00:00:36,380 >> Olgem kõrval teha mõned vigade kontrolli. 15 00:00:36,380 --> 00:00:42,920 Kui s on null, lähme kohe tagasi nii et meil ei ole kogemata 16 00:00:42,920 --> 00:00:45,630 endid, et null pointer. 17 00:00:45,630 --> 00:00:49,750 >> Järgmiseks lähme Käi tegelased s järgmiselt. 18 00:00:49,750 --> 00:00:52,390 Sest keskmine, i saab 0. 19 00:00:52,390 --> 00:00:55,890 n võrdub string pikkusega s. 20 00:00:55,890 --> 00:00:58,050 Tehke seda seni, kuni i on väiksem kui n. 21 00:00:58,050 --> 00:01:00,690 Ja iga iteratsiooni juurdekasvu i. 22 00:01:00,690 --> 00:01:02,710 >> Ja mida me tahame teha iga iteratsiooni? 23 00:01:02,710 --> 00:01:06,180 Olgem nüüd välja printida iga iteratsiooni ühe märgi 24 00:01:06,180 --> 00:01:07,910 järgneb uus liin. 25 00:01:07,910 --> 00:01:10,010 Noh, mis laadi teha me tahame prindi? 26 00:01:10,010 --> 00:01:16,850 Teen ettepaneku, et me läheme aadress mis võrdub summa s pluss i. 27 00:01:16,850 --> 00:01:18,390 >> Nüüd, miks see väljend? 28 00:01:18,390 --> 00:01:22,130 Noh, meenutada, et salvestatud s on aadress esimene märk 29 00:01:22,130 --> 00:01:23,490 meie string, s. 30 00:01:23,490 --> 00:01:27,470 Vahepeal i on astmeliselt edasi Iga iteratsiooni nii et see algab 0, 31 00:01:27,470 --> 00:01:29,590 Seejärel läheb 1, siis läheb 2. 32 00:01:29,590 --> 00:01:33,870 >> Nii teisisõnu, s pluss i tõhusalt tähistab aadress 33 00:01:33,870 --> 00:01:35,990 i-nda tegelane s. 34 00:01:35,990 --> 00:01:40,830 Nii et kui me minna, et aadress teel * ettevõtja, saadame kavatse 35 00:01:40,830 --> 00:01:42,650 i-nda märgi string. 36 00:01:42,650 --> 00:01:45,700 Ja see on väärtus, mis on asendada meie kohatäide, 37 00:01:45,700 --> 00:01:46,840 protsenti C. 38 00:01:46,840 --> 00:01:47,840 >> Olgem kinnituseks. 39 00:01:47,840 --> 00:01:51,720 Hoiame, koostada ja käivitada see programm. 40 00:01:51,720 --> 00:01:55,990 Tee suunanäitajaks, dot kaldkriipsuga suunanäitajaks. 41 00:01:55,990 --> 00:01:58,780 Ja nüüd ma annan string nagu tere. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> Ja tõepoolest, ma näen, H-E-L-L-O, koos iga char on oma rida. 44 00:02:03,770 --> 00:02:05,410