1 00:00:00,000 --> 00:00:02,395 >> [Musika jotzen] 2 00:00:02,395 --> 00:00:05,750 3 00:00:05,750 --> 00:00:06,506 >> DOUG LLOYD: OK. 4 00:00:06,506 --> 00:00:08,880 Osoko zenbaki lan egin dugu, Pertsonaien lan egin dugu, 5 00:00:08,880 --> 00:00:11,930 Nik egin dugu lan karroza, bikoitzak, kateak, eta bools. 6 00:00:11,930 --> 00:00:14,870 Nahiko agortu ditugu askoz guztiak [INAUDIBLE] mota duten 7 00:00:14,870 --> 00:00:17,100 izan dira gu guztion eskura batera. 8 00:00:17,100 --> 00:00:19,430 Baina orain zerbait gehiago egin nahi dugu. 9 00:00:19,430 --> 00:00:20,210 Nola egiten dugu? 10 00:00:20,210 --> 00:00:22,560 Zelan datu-mota ezberdinak sortzen dugu? 11 00:00:22,560 --> 00:00:26,130 Horrela egin ahal izango ditugu, egiturak erabiliz. 12 00:00:26,130 --> 00:00:30,180 Beraz egiturak behar bateratzeko gurekin baimendu Mota desberdinetako aldagaiak 13 00:00:30,180 --> 00:00:34,810 motako aldagai bakar batean, zein bere motaren izen propioa ezarri ahal izango dugu. 14 00:00:34,810 --> 00:00:37,570 Hau da, benetan sendoa gauza egin ahal izateko, 15 00:00:37,570 --> 00:00:40,900 orain ezin dugu talde delako Datu mota desberdinetako elementu 16 00:00:40,900 --> 00:00:43,910 elkarrekin duen konexio logikoa dute. 17 00:00:43,910 --> 00:00:46,440 Hau egin ahal izan dugu arrayak Sort batera, ezta? 18 00:00:46,440 --> 00:00:49,540 Ahal dugun aldagai-taldea datu-mota bereko 19 00:00:49,540 --> 00:00:53,410 elkarrekin unitate handi batean memoria, array baten. 20 00:00:53,410 --> 00:00:56,660 >> Baina ez dugu nahastu ahal izan Datu mota desberdinak elkarrekin. 21 00:00:56,660 --> 00:01:02,610 Ezin, esan dugu, parekatu zenbaki oso bat, eta pertsonaia bat, eta bikoitza guztiak 22 00:01:02,610 --> 00:01:05,330 Gauza bera, eta, deitu dute batasun bat dela. 23 00:01:05,330 --> 00:01:08,830 Baina egitura, edo Maiz structs gisa aipatzen, 24 00:01:08,830 --> 00:01:09,585 Benetan ahal izango dugu. 25 00:01:09,585 --> 00:01:12,370 Beraz, egitura bat da, ordenatu super aldagai bat bezala. 26 00:01:12,370 --> 00:01:16,530 Egin dituen aldagai bat Beste aldagai horren barruan. 27 00:01:16,530 --> 00:01:19,650 Hortaz, hona hemen adibide bat egitura oso erraza da. 28 00:01:19,650 --> 00:01:23,380 Hau da, sintaxia zer bilatzen ari antzeko egitura bat sortzeko auto bat da. 29 00:01:23,380 --> 00:01:25,250 Orain, goazen sintaxia barrena. 30 00:01:25,250 --> 00:01:27,400 Egiturari, hori da Hori dela adierazten keyword 31 00:01:27,400 --> 00:01:30,270 datu-mota berri bat sortzen ari naiz hemen. 32 00:01:30,270 --> 00:01:33,860 Hain zuzen ere, datu-mota baten izena da Eta egitura autoa izango da, ikusiko dugun bezala. 33 00:01:33,860 --> 00:01:36,640 Baina honek punta sailkatu da konpilatzailea off hori 34 00:01:36,640 --> 00:01:42,440 aldagai-multzo bat bezala hori joan Mota bereko parte hartu behar dira kontuan 35 00:01:42,440 --> 00:01:44,010 Minutu batean. 36 00:01:44,010 --> 00:01:46,340 >> Autoak, besterik egitura baten izena. 37 00:01:46,340 --> 00:01:50,590 Berriz ere, datu-mota hemen va Eta egitura autoa, ez bakarrik autoa izateko. 38 00:01:50,590 --> 00:01:53,060 Baina desberdina izan beharko duzu Anitz structs sortzen baduzu 39 00:01:53,060 --> 00:01:56,950 programa berean, behar duzun Eta egitura eta egiturari artean bereiztea. 40 00:01:56,950 --> 00:02:00,140 Beraz, eta egitura autoa, agian dut, gainera, egitura ikaslea, adibidez, 41 00:02:00,140 --> 00:02:01,790 programa berean. 42 00:02:01,790 --> 00:02:05,980 Kizkur giltza Inside dira deiturikoak eremu guztiak, 43 00:02:05,980 --> 00:02:07,954 edo egiturako kide. 44 00:02:07,954 --> 00:02:10,370 Beraz, zer dira gauza batzuk direla auto batek berezko? 45 00:02:10,370 --> 00:02:15,270 Beno, normalean urte bat du, ha eredu baten izena, eta matrikula bat, 46 00:02:15,270 --> 00:02:18,000 distantzia bat izan ohi ditu mila gainean kopuru batzuk, 47 00:02:18,000 --> 00:02:19,225 eta, agian, motorraren tamaina bat. 48 00:02:19,225 --> 00:02:23,570 Eta ikusiko duzunez, nahasten ari naiz Osoko zenbaki eta pertsonaiak eta bikoitzak. 49 00:02:23,570 --> 00:02:26,420 Ari dira guztiak ere izango da joan datu-mota berri honen zati. 50 00:02:26,420 --> 00:02:29,750 >> Azkenik, final gauza egin behar dut, ez ahaztu semicolon txiki honetan 51 00:02:29,750 --> 00:02:30,290 amaieran. 52 00:02:30,290 --> 00:02:34,380 Egitura definitzeko bukatu ondoren, puntu eta koma bat jarri amaieran behar dugu. 53 00:02:34,380 --> 00:02:37,325 Sintaktikoak oso ohikoa da Akats, funtzio bat delako, 54 00:02:37,325 --> 00:02:40,200 adibidez, besterik ez litzateke izango duzu kizkur irekia, itxi kizkur. 55 00:02:40,200 --> 00:02:42,950 Zuk ez duzu jarri puntu eta koma at funtzioaren definizio baten amaieran. 56 00:02:42,950 --> 00:02:46,430 Hau funtzio baten itxura definition, baina ez da, 57 00:02:46,430 --> 00:02:49,653 eta, beraz, puntu eta koma ez oroigarri bat besterik ez da egin behar duzu 58 00:02:49,653 --> 00:02:52,440 han jarri behar, zeren konpilatzailea izango Besterik ez 59 00:02:52,440 --> 00:02:53,510 dakit zer egin. 60 00:02:53,510 --> 00:02:56,160 Error oso ohikoa da ustekabean egin 61 00:02:56,160 --> 00:02:58,570 aurreneko egiturak definitzeko zaren. 62 00:02:58,570 --> 00:02:59,500 >> ONDO DA. 63 00:02:59,500 --> 00:03:02,824 Beraz, gure egiturak definitu dugu gure programak hasieran zenbait 64 00:03:02,824 --> 00:03:05,490 seguruenik ari dira joan delako funtzio askotara erabiltzeko. 65 00:03:05,490 --> 00:03:08,850 Ez dugu bat zehaztu nahi funtzio baten barruan, eta egitura, 66 00:03:08,850 --> 00:03:12,110 orduan sor baitezakete daitekeelako dugu egitura esparrua benetan 67 00:03:12,110 --> 00:03:13,790 bakarrik funtzio horren barruan lehendik. 68 00:03:13,790 --> 00:03:17,450 Seguruenik litzaidake egitura bat definitu nahi dugu beraz, erabili ahal izango dugu, funtzio bat baino gehiago ere, 69 00:03:17,450 --> 00:03:20,670 edo agian bat baino gehiago elkarrekin lotuta daude fitxategiak 70 00:03:20,670 --> 00:03:22,920 Gure programa bakar bat sortzeko. 71 00:03:22,920 --> 00:03:24,920 Batzuetan, gainera, ordez egitura definitzeko 72 00:03:24,920 --> 00:03:27,961 Oso goian non jarri duzu zure etxean libra sartutakoak zure kiloko definitzen, 73 00:03:27,961 --> 00:03:32,080 adibidez, jartzea baliteke ere Aparteko dot h fitxategiak, eta gero 74 00:03:32,080 --> 00:03:35,020 libra artean, zeure burua. 75 00:03:35,020 --> 00:03:37,620 >> Beraz, egiturak izan dugu, baina, gaur egun, horietako barruan lortu behar dugu. 76 00:03:37,620 --> 00:03:39,800 Zelan barruan lortu dugun sarbide egitura 77 00:03:39,800 --> 00:03:43,530 horiek azpi-aldagai, aldagai horiek egituraren barruan existitzen dela? 78 00:03:43,530 --> 00:03:46,810 Beno, izeneko zerbait egin behar dugu dot operadorea, eta horrek aukera ematen digu 79 00:03:46,810 --> 00:03:50,990 egitura arloetan sartzeko. 80 00:03:50,990 --> 00:03:55,490 Beraz, adibidez, demagun deklaratu dut Nire egitura datuak idatzi nonbait 81 00:03:55,490 --> 00:03:59,020 Nire programa goialdean, edo, agian, sartzen dot h fitxategi hori dizkiat kiloko. 82 00:03:59,020 --> 00:04:03,360 Orduz berri bat sortu nahi dut Datu mota horretako aldagai, esan dezaket, 83 00:04:03,360 --> 00:04:06,260 Eta egitura autoa, nire autoa, koma. 84 00:04:06,260 --> 00:04:11,580 Just like int esan izan dut x, edo kate izena koma. 85 00:04:11,580 --> 00:04:18,100 >> Datu-mota hemen struct autoa da, aldagaiaren izena, nire autoa da, 86 00:04:18,100 --> 00:04:23,770 eta ondoren dot operadorea erabili ahal izango dut Nire autoa hainbat arlotan sartzeko. 87 00:04:23,770 --> 00:04:27,494 Beraz, nire auto esan dezaket dot urteko berdinen 2011. 88 00:04:27,494 --> 00:04:28,410 Hori da, guztiz fina. 89 00:04:28,410 --> 00:04:34,210 Urtea, gogoratzen baduzue, zen bezala definitu Eta egitura auto honen barruan zenbaki oso eremu 90 00:04:34,210 --> 00:04:35,200 datu-mota. 91 00:04:35,200 --> 00:04:39,966 Beraz, eta egitura auto datuen aldakorra duen mota, hala nola, nire autoa bezala, nire auto esan dezaket 92 00:04:39,966 --> 00:04:44,030 dot urteko berdinen eta ondoren esleitu zenbaki oso balio batzuk, 2011. 93 00:04:44,030 --> 00:04:47,290 Nire autoa dot plaka berdinen CS50. 94 00:04:47,290 --> 00:04:51,180 Nire txartela dot distantzia 50505 semicolon berdin. 95 00:04:51,180 --> 00:04:53,270 Horiek guztiak ez dira guztiz fina eta hori da 96 00:04:53,270 --> 00:04:57,802 nola sartzeko dugu egitura arloetan. 97 00:04:57,802 --> 00:05:00,260 Egiturak, ordea, ez da beharrezkoa pilan sortuko. 98 00:05:00,260 --> 00:05:02,950 Bezalakoa, aldakorra, dugu dinamikoki esleitu ahal izango die. 99 00:05:02,950 --> 00:05:06,309 Programa bat izaten badugu agian den egitura asko sortuz, 100 00:05:06,309 --> 00:05:08,100 ez dakigu zenbat behar dugu, 101 00:05:08,100 --> 00:05:10,800 Orduz dinamikoki behar dugu egitura horiek esleitu 102 00:05:10,800 --> 00:05:12,960 Gure programa bezala exekutatzen da. 103 00:05:12,960 --> 00:05:16,600 Eta hala bada gabiltza sartzeko joan Testuinguru horretan egitura baten eremuak, 104 00:05:16,600 --> 00:05:20,660 gogoratzen dugun lehen erreferentzia kenduta behar egitura erakuslea, 105 00:05:20,660 --> 00:05:24,810 eta gero guk dereference behin erakuslea, gero eremu horretan sartzeko aukera izango dugu. 106 00:05:24,810 --> 00:05:26,830 Izanez a dugu egitura erakuslea, 107 00:05:26,830 --> 00:05:32,120 Ezin dugu besterik gabe, esan erakuslea dot eremu izendatzeko eta zer bilatzen ari gara. 108 00:05:32,120 --> 00:05:34,259 Ez dago aparteko dereferencing urratsa da. 109 00:05:34,259 --> 00:05:36,050 Beraz, demagun ordez previous-- du 110 00:05:36,050 --> 00:05:38,770 besterik gabe, aurreko adibide bezala, ordez geratuko 111 00:05:38,770 --> 00:05:43,680 pila, egiturari autoa, nire autoa, puntu eta koma, eta egitura auto esan dut, 112 00:05:43,680 --> 00:05:48,020 izarra, erakuslea Eta egitura auto nire autoa deitzen, 113 00:05:48,020 --> 00:05:51,250 Eta egitura auto tamaina malloc berdin. 114 00:05:51,250 --> 00:05:54,950 Dugu neurria irudikatu zenbat byte zure datu-mota berri hartzen. 115 00:05:54,950 --> 00:05:58,570 Ez duzu zertan bakarrik erabili behar ren, zabalera, int edo char, edo edozein tamaina 116 00:05:58,570 --> 00:05:59,715 eraiki-datu motak. 117 00:05:59,715 --> 00:06:02,090 Konpilatzailea smart nahikoa da Irudikatu nahi byte zenbat 118 00:06:02,090 --> 00:06:04,170 Zure egitura berriak eskatzen dituzte. 119 00:06:04,170 --> 00:06:09,610 Beraz, neure burua malloc I memoria unitate bat big nahikoa struct auto bat eduki, 120 00:06:09,610 --> 00:06:12,410 eta erakuslea lortu dut atzera oroimenaren bloke hori, 121 00:06:12,410 --> 00:06:16,090 eta erakuslea da nire autoa esleitzen. 122 00:06:16,090 --> 00:06:18,050 >> Orain, bada sarbidea nahi dut Nire autoa arloetan, 123 00:06:18,050 --> 00:06:22,615 Lehenengo nire autoa dereference erabiliz I dereference operadorea, izarraren 124 00:06:22,615 --> 00:06:26,620 Nik dugun erakusle ikusita bideoak, eta orduan ez dereference ondoren, 125 00:06:26,620 --> 00:06:32,200 Orduz dot operadorea erabili ahal izango dut Nire autoa hainbat arlotan sartzeko. 126 00:06:32,200 --> 00:06:35,490 Star Nire autoa dot urteko berdinen 2011. 127 00:06:35,490 --> 00:06:38,480 Eragina izango luke Kasu honetan, nahi dugu, 128 00:06:38,480 --> 00:06:41,960 dinamikoki dut dugulako Nire autoa esleitu. 129 00:06:41,960 --> 00:06:43,610 >> Hori da mota gogaikarriak, ordea, ezta? 130 00:06:43,610 --> 00:06:44,818 Badira 2-prozesuan urrats bat da gaur egun. 131 00:06:44,818 --> 00:06:47,460 Orain dereference-- daukagu izar operadorea bat dugu, 132 00:06:47,460 --> 00:06:48,910 eta puntu operadorea bat behar dugu. 133 00:06:48,910 --> 00:06:51,660 Eta espero dezakezun bezala, zeren C programatzaileak maite modutan laburragoa 134 00:06:51,660 --> 00:06:53,740 gauzak egin ahal izateko, ez da bat bide laburragoa hori egin ahal izateko. 135 00:06:53,740 --> 00:06:57,790 Ez dago gezi izeneko beste operadore da, Horri esker, prozesu honetan asko errazagoa. 136 00:06:57,790 --> 00:07:00,750 Modu gezi lan egiten da Lehenengo Dereferences da 137 00:07:00,750 --> 00:07:03,560 ezkerreko erakuslea operadoreak alde, 138 00:07:03,560 --> 00:07:06,620 eta, ondoren, dereferenced ondoren ezkerreko erakuslea, 139 00:07:06,620 --> 00:07:09,620 eskuin hegaletik eremu sartzen da. 140 00:07:09,620 --> 00:07:14,170 Eta, beraz, aldez aurretik moduko hau izan genuen izar nire autoa guzti hau dot, 141 00:07:14,170 --> 00:07:15,880 atsegin han asko han izan zen. 142 00:07:15,880 --> 00:07:22,040 Baina zer dugun ordez egin ahal izango da hau Nire autoa gezi urteko berdinen 2011. 143 00:07:22,040 --> 00:07:23,580 >> Berriz ere, zer gertatzen da hemen? 144 00:07:23,580 --> 00:07:25,720 Lehenik eta behin, nire autoa dereferencing naiz. 145 00:07:25,720 --> 00:07:27,810 Zein berriz, erakusle bat da hemen. 146 00:07:27,810 --> 00:07:31,270 Gero, ondoren Nire autoa dereferenced, I 147 00:07:31,270 --> 00:07:35,130 ondoren, eremu horretan sartzeko dezake Urte, plaka, eta distantzia 148 00:07:35,130 --> 00:07:40,020 nuen bezala, aurreneko aurretik Nire autoa dereference izarra, 149 00:07:40,020 --> 00:07:42,020 eta sakabanatutako eremuan sartzeko. 150 00:07:42,020 --> 00:07:45,290 Beraz, egiturak izan dezakezu, zuk erakusle izan daiteke egituretan, 151 00:07:45,290 --> 00:07:48,360 eta sarbide moduak duzu egitura horiek arloetan, 152 00:07:48,360 --> 00:07:52,600 erakusleak egin behar duzun ala ez Horietako edo aldagai beraiek. 153 00:07:52,600 --> 00:07:57,640 Dot edo gezi, arabera aldakorreko nola izendatu zuten. 154 00:07:57,640 --> 00:08:00,510 Naiz Doug Lloyd, hau CS50 da. 155 00:08:00,510 --> 00:08:01,975