1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence ay kung paano namin sagutin ang tanong, ano ang operasyon na dapat namin gawin unang? 2 00:00:10,540 --> 00:00:14,250 Kung paglutas ng equation sa matematika o pag-parse ng mga linya ng computer code, 3 00:00:14,250 --> 00:00:17,230 may mga mahigpit na mga panuntunan ng mangingibabaw sa kung saan namin sumunod 4 00:00:17,230 --> 00:00:20,270 upang ang lahat ng mga computer at ang mga tao ay maaaring makakuha ng parehong resulta. 5 00:00:20,270 --> 00:00:24,710 >> Unang off, ang pinaka-mahalagang panuntunan tandaan, lalo na sa pagsubok ng bug, 6 00:00:24,710 --> 00:00:27,680 na lagi naming mula sa kaibuturan panaklong palabas. 7 00:00:27,680 --> 00:00:31,120 Paggamit ng mga extrang panaklong ay maaaring maging isang kapaki-pakinabang na taktika sa pag-debug, 8 00:00:31,120 --> 00:00:34,640 pero hindi mahusay na kasanayan sa magkalat ng iyong code sa unneeded mga panaklong. 9 00:00:34,640 --> 00:00:38,220 Dalhin ang oras upang malaman ang mga pangunahing panuntunan ng operator mangingibabaw. 10 00:00:38,220 --> 00:00:42,450 >> Ang pangalawang pangkalahatang panuntunan na kapag operator may katumbas priorty, 11 00:00:42,450 --> 00:00:44,820 malutas lamang mula kaliwa papuntang kanan. 12 00:00:44,820 --> 00:00:47,690 Kapag pagharap sa simpleng matematika sisimulan namin sa mga panaklong, 13 00:00:47,690 --> 00:00:52,110 pagkatapos ay gawin ang pagdami at division, at sa wakas ay gawin ang karagdagan at pagbabawas. 14 00:00:52,110 --> 00:00:54,400 Multiplikasyon at dibisyon may parehong prayoridad, 15 00:00:54,400 --> 00:00:56,870 dahil mahalagang ito ay gumaganap ang parehong pagpapatakbo. 16 00:00:56,870 --> 00:01:00,880 Pagkatapos ng lahat ng division ay simpleng multiply ng kabaligtaran ng isang halaga. 17 00:01:00,880 --> 00:01:04,300 Katulad nito, ang pagbabawas ay simpleng pagdagdag ng isang negatibong halaga. 18 00:01:04,300 --> 00:01:06,150 >> Natin ang isang halimbawa. 19 00:01:14,470 --> 00:01:18,300 Ng pagsunod sa pagkakasunud-sunod ng mga karapatan sa pangunguna, magsisimula kami sa mga panaklong. Siyam minus 1. 20 00:01:18,300 --> 00:01:23,410 Na bigyan kami ng 8. Pagkatapos ay maaari naming ilipat sa division at pagpaparami. 21 00:01:23,410 --> 00:01:27,450 Susubukan naming malutas mula kaliwa papuntang kanan. Kaya 10 na hinati sa pamamagitan ng 2 ay 5. 22 00:01:27,450 --> 00:01:31,290 Mayroon kaming 5 beses 8 dito, at na ay magbibigay sa amin 40. 23 00:01:33,230 --> 00:01:35,410 Pagkatapos naming ilipat sa sa susunod na order ng mangingibabaw. 24 00:01:35,410 --> 00:01:38,730 Kaya kami ay naiwan na may 3 plus 40 minus 1. 25 00:01:42,400 --> 00:01:43,700 Muli lamang paglutas kaliwa papuntang kanan, 26 00:01:43,700 --> 00:01:47,650 dahil may kapantay na priority sa pagitan ng karagdagan at pagbabawas. 27 00:01:47,650 --> 00:01:51,510 Maaari naming sabihin 3 plus 40 ay 43, minus 1 ay 42. Na ang aming mga sagot. 28 00:01:53,920 --> 00:01:56,730 >> May 2 uri ng mga operator ng pagbabawas at pagdagdag; 29 00:01:56,730 --> 00:02:01,000 Ang prefix form, at ang suffix na form. 30 00:02:01,000 --> 00:02:06,130 Ang suffix form, i + +, ay karaniwang ginagamit para sa mga loop, 31 00:02:06,130 --> 00:02:10,500 na nangangahulugan na ang kasalukuyang halaga ay ginagamit sa pagpapahayag, at pagkatapos ito ay incremented. 32 00:02:10,500 --> 00:02:14,240 Kaya halaga ay lamang iba sa susunod na oras na variable ay ginagamit. 33 00:02:14,240 --> 00:02:17,910 Sa kabilang banda, ang prefix pagdagdag o pagbabawas ay nangangahulugan na ang kasalukuyang halaga 34 00:02:17,910 --> 00:02:22,760 ay incremented o decremented unang, at pagkatapos ito ay ginagamit sa pagpapahayag. 35 00:02:22,760 --> 00:02:25,310 >> Natin ang isang halimbawa sa integer x. 36 00:02:25,310 --> 00:02:27,220 Itinakda namin ito katumbas sa 5. 37 00:02:27,220 --> 00:02:36,500 Kung gagamitin namin ang mga operator ng suffix dito at sabihin x + +, x sa linyang ito ay pa rin 5. 38 00:02:36,500 --> 00:02:39,230 Kung kami ay upang i-print ito namin ang halaga 5. 39 00:02:39,230 --> 00:02:42,540 Ngunit pasulong x1 katotohanan katumbas ng 6. 40 00:02:42,540 --> 00:02:48,770 Kaya dito mismo sa line x ay katumbas sa 6, at kung-print namin ito namin makuha ang halaga 6. 41 00:02:48,770 --> 00:02:57,380 Ngayon kung ginamit namin ang prefix operator, + + x, x incremented unang, at pagkatapos ay ang halaga ay ginagamit. 42 00:02:57,380 --> 00:03:00,110 Kaya ito ay katumbas ng 7 sa linyang ito. 43 00:03:00,110 --> 00:03:04,750 Incrementing siyempre 6 hanggang 7, at kung kami ay upang i-print ito Gusto naming makuha ang halaga 7. 44 00:03:04,750 --> 00:03:09,160 >> Ang huling pananarinari sa precendence na kami ay tumingin sa mga deal na may pointer pagtatanda. 45 00:03:09,160 --> 00:03:15,050 Ang dereference operator, bituin, may priority sa paglipas ng pangunahing mga operator sa matematika, 46 00:03:15,050 --> 00:03:18,550 ngunit hindi sa ibabaw ng suffix incement at pagbabawas operator. 47 00:03:18,550 --> 00:03:20,690 Humahantong sa amin sa aming panghuling halimbawa. 48 00:03:20,690 --> 00:03:24,500 Natin gawin ang integer x at itakda ang mga ito katumbas ng 7. 49 00:03:24,500 --> 00:03:30,540 Din kami gumawa ng pointer y at itakda ito katumbas sa address ng x. 50 00:03:30,540 --> 00:03:34,920 Sa gayon ay kapag namin dereference y dapat naming makuha ang halaga 7. 51 00:03:34,920 --> 00:03:39,380 Ngayon sa linya ng code, mayroon kaming isang medyo malabo sitwasyon. 52 00:03:39,380 --> 00:03:44,310 Namin dereferencing y unang, at pagkatapos ay incrementing ang halaga 7? 53 00:03:44,310 --> 00:03:48,300 O kami incrementing pointer at pagkatapos ay dereferencing ito? 54 00:03:48,300 --> 00:03:52,800 Sa katunayan, dahil ang suffix ng pagdagdag ng operator ay may susunod sa 55 00:03:52,800 --> 00:03:55,370 ang dereference operator, kami ay sinusubukan upang dagdagan ang pointer y, 56 00:03:55,370 --> 00:03:59,170 na ilipat ang pointer ng laki ng mga int byte. 57 00:03:59,170 --> 00:04:03,040 Mahalaga pagbigay sa amin ng isang address sa ilang mga ganap na magkaibang mga punto sa memorya, 58 00:04:03,040 --> 00:04:05,010 at pagkatapos kami ay dereferencing ito. 59 00:04:05,010 --> 00:04:07,350 Kaya ito ay napaka walang kahulugan linya. 60 00:04:07,350 --> 00:04:10,250 Kung gusto namin ang aktwal na upang dagdagan ang halaga ng 7, 61 00:04:10,250 --> 00:04:14,260 nais namin upang ilagay ang dereference operator may y sa mga panaklong. 62 00:04:14,260 --> 00:04:17,290 Pagkatapos ay maaari naming dagdagan ang mga ito. 63 00:04:17,290 --> 00:04:21,089 Kaya habang hindi namin ay incrementing ang halaga x sa ikalawang sa huling linya ng code, 64 00:04:21,089 --> 00:04:23,380 sa huling linya ng code gagawin namin infact dereference y 65 00:04:23,380 --> 00:04:26,380 upang makuha ang halaga ng x at dagdagan na. 66 00:04:26,380 --> 00:04:29,540 Gusto namin naiwan sa ang halaga na katumbas ng x 8. 67 00:04:31,580 --> 00:04:33,580 >> Narito ang isang mabilis na pagbabalik-tanaw ng mga mga panuntunan ng precendence na namin ang uusapang tungkol sa. 68 00:04:33,580 --> 00:04:37,210 Sisimulan naming may sa kaibuturan panaklong at gumana ang palabas. 69 00:04:37,210 --> 00:04:41,210 Pagkatapos naming lumipat sa suffix ng mga operator tulad ng i + + o i -. 70 00:04:41,210 --> 00:04:45,920 Pagkatapos dereference at address ng mga operator tulad ng star x o ampersand x, 71 00:04:45,920 --> 00:04:50,260 at ang prefix operator tulad ng + + i o - i. 72 00:04:50,260 --> 00:04:54,920 Panghuli gawin namin ang mga simpleng mga pagpapatakbo ng matematika tulad ng multiplikasyon, dibisyon, modulo. 73 00:04:54,920 --> 00:04:58,400 Pagkatapos karagdagan, pagbabawas. 74 00:04:58,400 --> 00:05:02,170 Iyon ay precendence. Ako Jordan Jozwiak, at ito ay CS50. 75 00:05:04,160 --> 00:05:10,480 Bibigyan namin ng dereference at gamitin ang address at - kung paano mo gawin parirala na? 76 00:05:12,380 --> 00:05:13,190 Tapos ako na. Okay.