1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence je, kako smo odgovoriti na pitanje, što je operacija trebamo učiniti prvi? 2 00:00:10,540 --> 00:00:14,250 Bilo rješavanju matematičkih jednadžbi ili izdvajanja linijama računalnog koda, 3 00:00:14,250 --> 00:00:17,230 postoje stroga pravila prednost koja se pridržavamo 4 00:00:17,230 --> 00:00:20,270 tako da sva računala i ljudi mogu dobiti isti rezultat. 5 00:00:20,270 --> 00:00:24,710 >> Prije svega, najvažnije pravilo koje treba zapamtiti, posebno u bug testiranje, 6 00:00:24,710 --> 00:00:27,680 je da mi uvijek rade iz najdublje zagradama van. 7 00:00:27,680 --> 00:00:31,120 Korištenje dodatne zagrade može biti korisna taktika za ispravljanje pogrešaka, 8 00:00:31,120 --> 00:00:34,640 ali to nije dobra praksa da leglu svoj kod s nepotreban zagradama. 9 00:00:34,640 --> 00:00:38,220 Uzmite si vremena kako bi naučili osnovne operatera prednost pravila. 10 00:00:38,220 --> 00:00:42,450 >> Drugi opće pravilo je da kada operatori imaju jednak priorty, 11 00:00:42,450 --> 00:00:44,820 jednostavno riješiti s lijeva na desno. 12 00:00:44,820 --> 00:00:47,690 Kad se bave jednostavnom matematikom ćemo početi sa zagradama, 13 00:00:47,690 --> 00:00:52,110 zatim učinite množenje i dijeljenje, i na kraju napraviti zbrajanja i oduzimanja. 14 00:00:52,110 --> 00:00:54,400 Množenje i dijeljenje imaju isti prioritet, 15 00:00:54,400 --> 00:00:56,870 jer oni su u osnovi obavljaju istu radnju. 16 00:00:56,870 --> 00:01:00,880 Nakon svih podjela jednostavno pomnoži obrnutoj vrijednosti. 17 00:01:00,880 --> 00:01:04,300 Isto tako, oduzimanje jednostavno dodavanjem negativnu vrijednost. 18 00:01:04,300 --> 00:01:06,150 >> Učinimo primjer. 19 00:01:14,470 --> 00:01:18,300 Nakon redoslijedu, počet ćemo s zagradama. Devet minus jedan. 20 00:01:18,300 --> 00:01:23,410 To će nam dati osam. Onda možemo prijeći na podjele i multipliciranja. 21 00:01:23,410 --> 00:01:27,450 Mi ćemo riješiti s lijeva na desno. Dakle, 10 podijeljeno 2 je pet. 22 00:01:27,450 --> 00:01:31,290 Imamo pet puta osam ovdje, i da će nam dati 40. 23 00:01:33,230 --> 00:01:35,410 Onda smo prešli na sljedeću redoslijedu. 24 00:01:35,410 --> 00:01:38,730 Dakle, mi smo s lijeve strane tri plus 40 minus jedan. 25 00:01:42,400 --> 00:01:43,700 Opet samo rješavanje lijeva na desno, 26 00:01:43,700 --> 00:01:47,650 jer ima jednak prioritet između zbrajanja i oduzimanja. 27 00:01:47,650 --> 00:01:51,510 Možemo reći tri plus 40 je 43, minus 1 je 42. To je naš odgovor. 28 00:01:53,920 --> 00:01:56,730 >> Postoje dvije vrste dekrement i prirast operatera; 29 00:01:56,730 --> 00:02:01,000 Prefiks oblik, te nastavka oblik. 30 00:02:01,000 --> 00:02:06,130 Nastavak oblik, i + +, obično se koristi u za petlje, 31 00:02:06,130 --> 00:02:10,500 što znači da je trenutna vrijednost se koristi u izrazu, a zatim ga je porastao. 32 00:02:10,500 --> 00:02:14,240 Dakle, vrijednost će biti samo drugačije sljedeći put varijabla se koristi. 33 00:02:14,240 --> 00:02:17,910 S druge strane, prefiks prirast ili snižavanja znači da je trenutna vrijednost 34 00:02:17,910 --> 00:02:22,760 je porastao ili smanjene prvi, a zatim se koristi u izrazu. 35 00:02:22,760 --> 00:02:25,310 >> Uzmimo primjer s cijelim x. 36 00:02:25,310 --> 00:02:27,220 Postavit ćemo ga jednako pet. 37 00:02:27,220 --> 00:02:36,500 Ako ćemo koristiti sufiks operatora na njega i reći x + +, x na toj liniji je još pet. 38 00:02:36,500 --> 00:02:39,230 Ako bismo ga isprintati bismo dobili vrijednost pet. 39 00:02:39,230 --> 00:02:42,540 Ali ide prema naprijed x1 činjenicu jednak 6. 40 00:02:42,540 --> 00:02:48,770 Dakle, upravo ovdje na ovoj liniji x je jednak 6, a ako smo ga ispisati bismo dobili vrijednost 6. 41 00:02:48,770 --> 00:02:57,380 Sada, ako smo koristili prefiks operator, + + x, x je porastao prvi, a zatim se vrijednost koristi. 42 00:02:57,380 --> 00:03:00,110 Dakle, to je jednak 7 na ovoj liniji. 43 00:03:00,110 --> 00:03:04,750 Povećavanjem naravno 6-7, a ako smo ga ispisati bismo dobili vrijednost sedam. 44 00:03:04,750 --> 00:03:09,160 >> Posljednji nijansa u precendence da ćemo pogledati bavi pokazivač zapis. 45 00:03:09,160 --> 00:03:15,050 The dereference operater, zvijezda, ima prioritet nad osnovnim matematičkim operatorima, 46 00:03:15,050 --> 00:03:18,550 ali ne preko sufiks incement i smanjenje operatora. 47 00:03:18,550 --> 00:03:20,690 To nas dovodi do naše konačne primjer. 48 00:03:20,690 --> 00:03:24,500 Ajmo uzeti cijeli x i postaviti ga je jednak 7. 49 00:03:24,500 --> 00:03:30,540 Također ćemo napraviti y pokazivač i postaviti ga jednako na adresu x. 50 00:03:30,540 --> 00:03:34,920 Tako da kad smo dereference y bismo trebali dobiti vrijednost sedam. 51 00:03:34,920 --> 00:03:39,380 Sada u ovoj liniji koda, imamo nešto nejasnu situaciju. 52 00:03:39,380 --> 00:03:44,310 Jesmo dereferencing y prvi, a zatim povećavanjem vrijednosti 7? 53 00:03:44,310 --> 00:03:48,300 Ili smo povećavanjem pokazivač i zatim ga dereferencing? 54 00:03:48,300 --> 00:03:52,800 U stvari, jer je operater sufiks prirast ima prednost nad 55 00:03:52,800 --> 00:03:55,370 the dereference operater, mi pokušavate povećajte pokazivač y, 56 00:03:55,370 --> 00:03:59,170 koji bi pomaknuli pokazivač po veličini int bajtova. 57 00:03:59,170 --> 00:04:03,040 U suštini daje nam adresu u nekom sasvim drugom mjestu u memoriji, 58 00:04:03,040 --> 00:04:05,010 i onda smo ga dereferencing. 59 00:04:05,010 --> 00:04:07,350 Dakle, to je vrlo besmisleno linija. 60 00:04:07,350 --> 00:04:10,250 Ako smo zapravo htjeli povećajte vrijednost 7, 61 00:04:10,250 --> 00:04:14,260 trebali bismo staviti dereference operatoru sa y u zagradama. 62 00:04:14,260 --> 00:04:17,290 Tada bismo mogli povećavati. 63 00:04:17,290 --> 00:04:21,089 Dakle, dok mi ne bi povećavanjem vrijednost x sa drugog do posljednjeg retka koda, 64 00:04:21,089 --> 00:04:23,380 u zadnju liniju koda bismo infact dereference y 65 00:04:23,380 --> 00:04:26,380 da biste dobili X vrijednost i povećajte to. 66 00:04:26,380 --> 00:04:29,540 Mi bi se s lijeve strane je vrijednost x jednaka 8. 67 00:04:31,580 --> 00:04:33,580 >> Evo brzo rekapitulacija od precendence pravila koja smo razgovarali o tome. 68 00:04:33,580 --> 00:04:37,210 Počet ćemo s najdubljim zagradama i rade van. 69 00:04:37,210 --> 00:04:41,210 Onda smo prešli na sufiks operatori kao što sam ja + + ili -. 70 00:04:41,210 --> 00:04:45,920 Zatim dereference i adresa operatera poput zvijezda x ili ampersand x, 71 00:04:45,920 --> 00:04:50,260 i prefiks operatori poput + + I ili - I. 72 00:04:50,260 --> 00:04:54,920 Konačno smo napraviti jednostavne matematičke operacije kao što su množenje, dijeljenje, modulo. 73 00:04:54,920 --> 00:04:58,400 Tada zbrajanje, oduzimanje. 74 00:04:58,400 --> 00:05:02,170 To je precendence. Ja sam Jordan Jozwiak, a ovo je CS50. 75 00:05:04,160 --> 00:05:10,480 Mi ćemo dereference i koristiti adresu i - Kako ste izraz koji? 76 00:05:12,380 --> 00:05:13,190 Ja sam učinio. Ok.