[Powered by Google Translate] Precendence estas kiel ni respondi la demandon, kio operacio ni faru unuan?
Ĉu solvanta math ekvacioj aŭ sintaksa analizo linioj de komputilo kodo,
ekzistas striktaj reguloj de prioritaton al kiu ni aliĝas
por ke cxiuj komputiloj kaj homoj povas preni la sama rezulto.
>> Unua for, la plej grava regulo por memori, speciale en cimo testado,
estas, ke ni ĉiam labori de la plej interna parentezoj eksteren.
Uzanta ekstra krampoj povas esti helpema depuración taktiko,
sed ĝi ne estas bona praktiko por portilo vian kodon kun unneeded krampoj.
Prenu la tempo por lerni baza operatoro prioritaton reguloj.
>> La dua ĝenerala regulo estas, ke kiam operatoroj havas egalajn priorty,
vi simple solvi de maldekstre al dekstre.
Kiam kontraktanta kun simplaj matematikaj ni starti kun parentezoj,
tiam faru multipliko kaj divido, kaj fine fari adicio kaj subtraho.
Multipliko kaj divido havas saman prioritaton,
ĉar ili esence plenumante la sama operacio.
Post ĉiu divido estas simple multiplikante per la inverso de valoro.
Simile, subtraho estas simple aldonante negativa valoro.
>> Ni faru ekzemplon.
Post la ordo de prioritato, ni starti kun la krampoj. Naŭ minus 1.
Kiu donos al ni 8. Tiam ni povas movi al la divido kaj multipliko.
Ni solvas de maldekstre al dekstre. Do 10 dividite per 2 estas 5.
Ni havas 5 fojoj 8 tie, kaj kiu donos al ni 40.
Tiam ni movi al la venonta ordono de prioritaton.
Do ni marŝis kun 3 plus 40 minus 1.
Denove nur solvi maldekstre dekstren,
ĉar ne estas egala prioritato inter la adicio kaj subtraho.
Ni povas diri 3 plus 40 estas 43, minus 1 estas 42. Tio estas nia respondo.
>> Estas 2 tipoj de dekremento kaj pliigo operatoroj;
La prefikso formo, kaj la sufikso formo.
La sufikso formo, i + +, estas kutime uzitaj en por cikloj,
kio signifas, ke la aktuala valoro estas uzita en la esprimo, kaj tiam ĝi estas incremented.
Do valoron nur estos malsama la proksima fojo la variablo estas uzata.
Aliflanke, la prefikso pliigo aŭ dekremento signifas ke la aktuala valoro
estas incremented aŭ decremented unue, kaj poste ĝi estas uzata en la esprimo.
>> Ni prenu ekzemplon kun la entjero x.
Ni starigis ĝin egala al 5.
Se ni uzas la sufikson operatoro sur ĝi, kaj diros x + +, x sur ĉi tiu linio estas ankoraŭ 5.
Se ni devis presi ĝin ni devus preni la valoro 5.
Sed irante antaŭen x1 fakto egalas 6.
Do ĝuste sur ĉi tiu linio x egalas al 6, kaj se ni presas gxin ni ricevi la valoron 6.
Nun se ni uzas la prefikson operatoro, + + x, x estas incremented unue, kaj poste la valoro estas uzita.
Do ĝi estas egala al 7 en ĉi tiu linio.
Pliigante kompreneble 6 al 7, kaj se ni devis presi ĝin ni devus akiri la valoron 7.
>> La lasta nuanco en precendence ke ni rigardu traktas puntero skribmaniero.
La dereference operatoro, stelo, havas prioritaton super bazaj matematikaj operatoroj,
sed ne super la sufikso incement kaj dekremento operatoroj.
Tio kondukas nin al nia fina ekzemplo.
Ni prenu la entjero x kaj starigis ĝin egala al 7.
Ni ankaŭ faras puntero y kaj starigis ĝin egala al la adreso de x.
Por ke, kiam ni dereference y ni devus ricevi la valoron 7.
Nun en tiu linio de kodo, ni havas iom ambigua situacio.
Ĉu ni dereferencing y unue, kaj poste pliigante la valoron 7?
Aŭ ni pliigante la puntero kaj poste dereferencing ĝin?
Fakte, ĉar la sufikso pliigo operatoro havas prioritaton super
la dereference operatoro, ni provas pliigo la puntero y,
kiu movas la puntero por grandeco de int bajtoj.
Esence al ni adreson en iu tute malsama punkto en memoro,
kaj poste ni dereferencing ĝin.
Do ĉi tiu estas tre sensignifa linio.
Se ni efektive volis pliigo la valoron de 7,
ni devus meti la dereference operatoro kun y en krampoj.
Tiam ni povus pliigo ĝin.
Do dum ni ne estus pliigante la valoron x per la dua al lasta linio de kodo,
en la lasta linio de kodo oni farus infact dereference y
por ricevi la valoron x kaj pliigo tio.
Ni estus eliris kun la valoro x egalas 8.
>> Jen rapida recap de la precendence reguloj kiuj ni jam parolis pri.
Ni komencu per la plej interna parentezoj kaj labori eksteren.
Tiam ni movi antaŭen al sufikso operatoroj kiel mi + + aŭ mi -.
Tiam dereference kaj adreso de telefonistoj kiel stelo x aŭ signo x,
kaj la prefikso operatoroj kiel + + i aŭ - mi.
Fine ni do la simplaj matematikaj operacioj kiel multipliko, divido, module.
Tiam Krome, subtraho.
Tio precendence. Mi Jordan Jozwiak, kaj ĉi tiu estas CS50.
Ni instruos vin dereference kaj uzu la adreson kaj - kiel vi frazo tion?
Mi faris. Okay.