[Powered by Google Translate] Precendence er hvordan vi svare på spørsmålet, hva skal operasjonen vi gjøre først?
Enten løse matematiske ligninger eller parsing linjer med programkode,
Det er strenge regler for forrang til som vi følger
slik at alle datamaskiner og mennesker kan få det samme resultatet.
>> Først av, den viktigste regelen å huske, spesielt i bug testing,
er at vi alltid arbeide fra de innerste parentesene utover.
Bruke ekstra parentes kan være et nyttig debugging taktikk,
men det er ikke lurt å kull koden med unødvendige parenteser.
Ta deg tid til å lære grunnleggende operatorpresedens regler.
>> Den andre Hovedregelen er at når operatørene har lik priorty,
du bare løse fra venstre til høyre.
Når du arbeider med enkel matematikk starter vi med parenteser,
deretter gjøre multiplikasjon og divisjon, og til slutt gjør addisjon og subtraksjon.
Multiplikasjon og divisjon har samme prioritet,
fordi de er i hovedsak utfører samme operasjon.
Tross alt divisjon er rett og slett multiplisere med den inverse av en verdi.
Tilsvarende er subtraksjon bare å legge en negativ verdi.
>> La oss gjøre et eksempel.
Etter rekkefølge, vil vi starte med parenteser. Ni minus en.
Det vil gi oss 8. Da kan vi gå videre til divisjon og multiplikasjon.
Vi vil løse fra venstre til høyre. Så 10 dividert med 2 er 5.
Vi har 5 ganger 8 her, og som vil gi oss 40.
Så vi går videre til neste rekkefølge.
Så vi sitter igjen med 3 pluss 40 minus 1.
Igjen bare løse venstre til høyre,
fordi det er lik prioritet mellom addisjon og subtraksjon.
Vi kan si 3 pluss 40 er 43, minus 1 er 42. Det er vårt svar.
>> Det finnes 2 typer øke og tilvekst operatører;
Prefikset formen, og suffikset skjemaet.
Suffikset form, i + +, er ofte brukt i for looper,
noe som betyr at den gjeldende verdi brukes i uttrykket, og da er det inkrementert.
Så verdien vil bare være forskjellig neste gang variabel brukes.
På den annen side betyr prefikset inkrementet eller decrement at gjeldende verdi
økes eller dekrementeres først, og deretter er det brukt i uttrykket.
>> La oss ta et eksempel med tall x.
Vi setter den lik 5.
Hvis vi bruker suffikset operatør på det og si x + +, x på denne linjen er fortsatt 5.
Hvis vi skulle skrive den ut vi ville få verdien 5.
Men fremover x1 faktum lik 6.
Så akkurat her på denne linjen x er lik 6, og hvis vi skrevet det ut vi ville få verdien 6.
Hvis vi nå brukte prefikset operatør, + + x, x er økes først og deretter verdien brukes.
Så det er lik 7 på denne linjen.
Inkrementering selvfølgelig 6-7, og hvis vi skulle skrive den ut vi ville få verdien 7.
>> Den siste nyanse i precendence at vi vil se på avtaler med pekeren notasjon.
Den dereferanse operatør, stjerne, har prioritet over grunnleggende matematiske operatører,
men ikke over suffikset incement og Decrement operatører.
Dette leder oss til vår siste eksempel.
La oss ta heltall x og sette den lik 7.
Vi vil også gjøre en peker y og sette den lik adressen x.
Slik at når vi dereferanse y vi bør få verdien 7.
Nå i denne linjen med kode, har vi en noe tvetydig situasjon.
Er vi dereferencing y først, og deretter økes verdien 7?
Eller er vi inkrementering pekeren og deretter dereferencing det?
Faktisk, på grunn suffikset inkrementet operatøren har forrang fremfor
den dereferanse operatør, vi forsøker å øke pekeren y,
som ville flytte pekeren ved størrelsen på int bytes.
Hovedsak gi oss en adresse i noen helt annet sted i minnet,
og så skal vi dereferencing det.
Så dette er veldig meningsløst linje.
Hvis vi faktisk ønsket å øke verdien av 7,
vi måtte sette dereferanse operatør med y i parentes.
Da kunne vi øke den.
Så mens vi ikke ville være inkrementering verdien x med den nest siste linje med kode,
i siste linje av koden vil vi infact dereference y
for å få verdien x og inkrement som.
Vi ville sitte igjen med verdien x er lik 8.
>> Her er en rask oppsummering av de precendence regler som vi har snakket om.
Vi begynner med de innerste parentesene og arbeider utover.
Så vi går videre til suffikset operatører som i + + eller i -.
Deretter dereferanse og adresse operatører som stjerne x eller ampersand x,
og prefikset operatører som + + i eller - i.
Endelig har vi gjøre enkle matematiske operasjoner som multiplikasjon, divisjon, modulo.
Så addisjon, subtraksjon.
Det er precendence. Jeg er Jordan Jozwiak, og dette er CS50.
Vi vil dereferanse og bruke adressen og - hvordan gjør dere setning som?
Jeg er ferdig. Okay.