[Powered by Google Translate] Precendence er, hvordan vi besvare spørgsmålet, hvad skal operation vi gøre først?
Hvorvidt løse matematiske ligninger eller parsing linjer af computer-kode,
der er strenge regler for forrang, som vi overholder
således at alle computere og mennesker kan få det samme resultat.
>> Først off, den vigtigste regel at huske, især i bug test,
er, at vi altid arbejder ud fra de inderste parenteser udad.
Brug ekstra parenteser kan være et nyttigt debugging taktik,
men det er ikke god praksis at kuld din kode med unødvendige parenteser.
Tag dig tid til at lære de grundlæggende operatør forrang regler.
>> Den anden generelle regel er, at når operatørerne har lige priorty,
man simpelthen løse fra venstre mod højre.
Når man har med simpel matematik vi starter med parenteser,
derefter gøre multiplikation og division, og endelig gøre addition og subtraktion.
Multiplikation og division har samme prioritet,
fordi de i det væsentlige udfører den samme operation.
Jo division er simpelthen multiplikation med den inverse af en værdi.
Tilsvarende er subtraktion blot at tilføje en negativ værdi.
>> Lad os lave et eksempel.
Efter rangfølge, vil vi starte med parenteser. Ni minus 1.
Det vil give os 8. Så kan vi gå videre til division og multiplikation.
Vi løser fra venstre mod højre. Så 10 divideret med 2, er fem.
Vi har 5 gange 8 her, og det vil give os 40.
Så vi går videre til næste rangfølge.
Så vi er tilbage med 3 plus 40 minus 1.
Igen bare løse venstre mod højre,
fordi der er lige så højt mellem addition og subtraktion.
Vi kan sige 3 plus 40 er 43, minus 1 er 42. Det er vores svar.
>> Der er 2 typer af formindskelsesdata og tilvækst operatører;
Forstavelsen form, og suffikset form.
Suffikset form, i + +, er almindeligt anvendt i for loops,
hvilket betyder, at den aktuelle værdi anvendes i udtrykket, og derefter inkrementeres.
Så værdi vil kun være forskellig, næste gang variabel anvendes.
På den anden side betyder forstavelsen forøgelsen eller formindskelsen at den aktuelle værdi
inkrementeres eller dekrementeres først, og derefter det anvendes i udtrykket.
>> Lad os tage et eksempel med heltal x.
Vi vil sætte den lig med 5.
Hvis vi bruge endelsen operatør på det og sige x + +, x på denne linie er stadig 5.
Hvis vi skulle printe det ud vi ville få værdien 5.
Men fremadrettet x1 faktum er lig 6.
Så lige her på denne linie x er lig med 6, og hvis vi udskrives det ud vi ville få værdien 6.
Nu, hvis vi anvendte præfiksoperatoren, + + x, x inkrementeres først og derefter den værdi anvendes.
Så det er lig med 7 på denne linje.
Forøgelsen af ​​bane 6 til 7, og hvis vi skulle printe det ud vi ville få værdien 7.
>> Den sidste nuance i precendence, at vi vil se på omhandler pointer notation.
Den dereference operatør, stjerne, har prioritet over basale matematiske operatører,
men ikke over endelsen incement og formindskelsesdata operatører.
Dette fører os til vores sidste eksempel.
Lad os tage det hele tal x og sæt den lig med 7.
Vi vil også gøre en pegepind y og sæt den lig med adressen på x.
Så når vi dereference y vi bør få værdien 7.
Nu i denne linje kode, har vi en noget tvetydig situation.
Er vi dereferere y først, og derefter inkrementere værdien 7?
Eller er vi inkrementere markøren og derefter dereferere det?
Faktisk suffikset inkrementeringsoperatoren fordi har forrang
den dereference operatør, vi forsøger at inkrementere pointer y,
hvilket ville flytte markøren ved størrelsen af ​​int bytes.
Grundlæggende giver os en adresse i nogle helt andet sted i hukommelsen,
og så er vi dereferere det.
Så det er meget meningsløs linje.
Hvis vi ønskede egentlig at øge værdien på 7,
ville vi nødt til at sætte dereference operatør med y i parentes.
Så kunne vi forøge det.
Så mens vi ikke ville forøgelse af værdien x med den næstsidste linje kode,
i sidste linje kode, vi ville infact dereference y
at få værdien x og inkrementere denne.
Vi ville stå tilbage med værdien x er lig med 8.
>> Her er en hurtig resumé af de precendence regler, som vi har talt om.
Vi begynder med de inderste parenteser og arbejde udad.
Så går vi videre til suffix udbydere som i + + eller i -.
Så dereference og adresse operatører som stjerne x eller tegnet x,
og præfikset udbydere som + + I, eller - i.
Endelig vi gør det simple matematiske operationer som multiplikation, division, modulo.
Derefter addition, subtraktion.
Det er precendence. Jeg Jordan Jozwiak, og dette er CS50.
Vi får dereference og bruge den adresse og - hvordan gør du frase det?
Jeg er færdig. Okay.