1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence is hoe ons die vraag te beantwoord, wat moet operasie het ons eerste te doen? 2 00:00:10,540 --> 00:00:14,250 Of die oplossing van wiskunde vergelykings of pars eer van reëls van die rekenaar kode, 3 00:00:14,250 --> 00:00:17,230 Daar is streng reëls van die voorrang wat ons hou 4 00:00:17,230 --> 00:00:20,270 sodat al die rekenaars en mense kan dieselfde resultaat kry. 5 00:00:20,270 --> 00:00:24,710 >> Eerstens, die belangrikste reël om te onthou, veral in bug toets, 6 00:00:24,710 --> 00:00:27,680 is dat ons altyd werk van die binneste hakies uiterlike. 7 00:00:27,680 --> 00:00:31,120 Ekstra hakies gebruik kan 'n nuttige debugging taktiek, 8 00:00:31,120 --> 00:00:34,640 maar dit is nie goeie praktyk om jou kode met onnodige hakies te rommel. 9 00:00:34,640 --> 00:00:38,220 Neem die tyd om basiese operateur voorrang reëls te leer. 10 00:00:38,220 --> 00:00:42,450 >> Die tweede algemene reël is dat wanneer operateurs het 'n gelyke priorty, 11 00:00:42,450 --> 00:00:44,820 jy net los van links na regs. 12 00:00:44,820 --> 00:00:47,690 Wanneer die hantering met 'n eenvoudige wiskunde begin ons met hakies, 13 00:00:47,690 --> 00:00:52,110 dan doen vermenigvuldiging en deling, en laastens doen optelling en aftrekking. 14 00:00:52,110 --> 00:00:54,400 Vermenigvuldiging en deling het dieselfde prioriteit, 15 00:00:54,400 --> 00:00:56,870 want dit is in wese die uitvoering van die dieselfde operasie. 16 00:00:56,870 --> 00:01:00,880 Na al die afdeling is eenvoudig vermenigvuldig met die inverse van 'n waarde. 17 00:01:00,880 --> 00:01:04,300 Net so, aftrek is eenvoudig 'n negatiewe waarde. 18 00:01:04,300 --> 00:01:06,150 >> Kom ons doen 'n voorbeeld. 19 00:01:14,470 --> 00:01:18,300 Na aanleiding van die rangorde, sal ons begin met die hakies. Nege minus 1. 20 00:01:18,300 --> 00:01:23,410 Dit sal ons 8. Dan kan ons aanbeweeg na die verdeling en vermenigvuldiging. 21 00:01:23,410 --> 00:01:27,450 Ons sal oplos van links na regs. So 10 gedeel deur 2 is 5. 22 00:01:27,450 --> 00:01:31,290 Ons het 5 keer 8 hier is, en dat ons sal gee 40. 23 00:01:33,230 --> 00:01:35,410 Dan beweeg ons op die volgende rangorde. 24 00:01:35,410 --> 00:01:38,730 Sodat ons links met 3 plus 40 minus 1. 25 00:01:42,400 --> 00:01:43,700 Weer net die oplossing van links na regs, 26 00:01:43,700 --> 00:01:47,650 want daar is gelyke prioriteit tussen die optelling en aftrekking. 27 00:01:47,650 --> 00:01:51,510 Ons kan sê 3 plus 40 is 43 minus 1 is 42. Dit is ons antwoord. 28 00:01:53,920 --> 00:01:56,730 >> Daar is 2 tipes van decrement en inkrement operateurs; 29 00:01:56,730 --> 00:02:01,000 Die voorvoegsel vorm, en die agtervoegsel vorm. 30 00:02:01,000 --> 00:02:06,130 Die agtervoegsel vorm, i + +, word algemeen gebruik vir loops, 31 00:02:06,130 --> 00:02:10,500 wat beteken dat die huidige waarde gebruik in die uitdrukking, en dan is dit geïnkrementeer. 32 00:02:10,500 --> 00:02:14,240 So waarde sal net anders wees die volgende keer die veranderlike is gebruik. 33 00:02:14,240 --> 00:02:17,910 Aan die ander kant, die voorvoegsel inkrement of decrement beteken dat die huidige waarde 34 00:02:17,910 --> 00:02:22,760 geïnkrementeer of decremented eerste, en dan is dit gebruik in die uitdrukking. 35 00:02:22,760 --> 00:02:25,310 >> Kom ons neem 'n voorbeeld met die integer x. 36 00:02:25,310 --> 00:02:27,220 Ons sal dit gelyk is aan 5. 37 00:02:27,220 --> 00:02:36,500 As ons die agtervoegsel-operateur gebruik dit en sê x + +, x op hierdie lyn is nog steeds 5. 38 00:02:36,500 --> 00:02:39,230 As ons dit uit te druk wat ons sou kry die waarde 5. 39 00:02:39,230 --> 00:02:42,540 Maar vorentoe x1 feit is gelyk aan 6. 40 00:02:42,540 --> 00:02:48,770 So reg hier op hierdie lyn x is gelyk aan 6, en as ons druk dit uit, ons sal die waarde kry 6. 41 00:02:48,770 --> 00:02:57,380 Nou as ons gebruik die voorvoegsel operateur + + x, x is geïnkrementeer eerste, en dan die waarde word gebruik. 42 00:02:57,380 --> 00:03:00,110 So dit is gelyk aan 7 op hierdie reël. 43 00:03:00,110 --> 00:03:04,750 Verhoog van kursus 6 tot 7, en as ons dit uit te druk, sou ons die waarde 7. 44 00:03:04,750 --> 00:03:09,160 >> Die laaste nuanse in precendence dat ons sal kyk na handel met pointer notasie. 45 00:03:09,160 --> 00:03:15,050 Die dereference operateur, ster, het voorrang bo basiese wiskunde-operateurs, 46 00:03:15,050 --> 00:03:18,550 maar nie oor die agtervoegsel incement en decrement operateurs. 47 00:03:18,550 --> 00:03:20,690 Dit lei ons na ons laaste voorbeeld. 48 00:03:20,690 --> 00:03:24,500 Kom ons neem die integer x en stel dit gelyk aan 7. 49 00:03:24,500 --> 00:03:30,540 Ons sal ook 'n pointer y en stel dit gelyk aan die adres van x. 50 00:03:30,540 --> 00:03:34,920 Sodat wanneer ons dereference y ons moet die waarde 7. 51 00:03:34,920 --> 00:03:39,380 Nou, ons het in hierdie lyn van die kode 'n ietwat dubbelsinnige situasie. 52 00:03:39,380 --> 00:03:44,310 Is ons ontwysing y 1, en dan die verhoog van die waarde 7? 53 00:03:44,310 --> 00:03:48,300 Of is ons die verhoog van die wyser en dan ontwysing dit? 54 00:03:48,300 --> 00:03:52,800 In werklikheid, omdat die agtervoegsel inkrement operateur het voorrang bo 55 00:03:52,800 --> 00:03:55,370 dereference operateur, ons probeer om die wyser y te inkrementeer, 56 00:03:55,370 --> 00:03:59,170 wat sou die wyser beweeg deur grootte van int bytes. 57 00:03:59,170 --> 00:04:03,040 Wese gee vir ons 'n adres in sommige heeltemal ander punt in die geheue, 58 00:04:03,040 --> 00:04:05,010 en dan is ons ontwysing. 59 00:04:05,010 --> 00:04:07,350 So dit is baie betekenisloos lyn. 60 00:04:07,350 --> 00:04:10,250 As ons wou eintlik die waarde van 7 inkrementeer, 61 00:04:10,250 --> 00:04:14,260 ons wil hê dat die dereference operateur met y in hakies te sit. 62 00:04:14,260 --> 00:04:17,290 Dan kan ons dit inkrementeer. 63 00:04:17,290 --> 00:04:21,089 Dus, terwyl ons nie verhoog van die waarde x met die tweede tot die laaste reël van die kode, 64 00:04:21,089 --> 00:04:23,380 in die laaste reël van die kode wat ons sou INFACT dereference y 65 00:04:23,380 --> 00:04:26,380 die waarde x te kry en inkrementeer dat. 66 00:04:26,380 --> 00:04:29,540 Ons sal gelaat word met die waarde van x is gelyk aan 8. 67 00:04:31,580 --> 00:04:33,580 >> Hier is 'n vinnige recap van die precendence reëls wat ons het gepraat oor. 68 00:04:33,580 --> 00:04:37,210 Ons sal begin met die binneste hakies en werk na buite. 69 00:04:37,210 --> 00:04:41,210 Dan beweeg ons op agtervoegsel operateurs soos ek + + of i -. 70 00:04:41,210 --> 00:04:45,920 Toe het dereference en adres van operateurs soos Star x of ampersand x, 71 00:04:45,920 --> 00:04:50,260 en die voorvoegsel operateurs soos + + i of - i. 72 00:04:50,260 --> 00:04:54,920 Ten slotte het ons die eenvoudige wiskunde bedrywighede soos vermenigvuldiging, deling, modulo doen. 73 00:04:54,920 --> 00:04:58,400 Dan optel, aftrek. 74 00:04:58,400 --> 00:05:02,170 Dis precendence. Ek is Jordan Jozwiak, en dit is CS50. 75 00:05:04,160 --> 00:05:10,480 Ons sal dereference en gebruik die adres en hoe doen jy frase wat? 76 00:05:12,380 --> 00:05:13,190 Ek gedoen het. Okay.