[Powered by Google Translate] Precendence ni jinsi sisi kujibu swali, nini tunapaswa kufanya operesheni ya kwanza?
Kama kutatua equations math au mistari parsing wa code kompyuta,
kuna sheria kali ya precedence ambayo sisi kuambatana
ili wote kompyuta na watu wanaweza kupata matokeo sawa.
>> Kwanza mbali, utawala muhimu kukumbuka, hasa katika kupima mdudu,
ni kwamba sisi daima kazi kutoka mabano ndani nje.
Kutumia mabano ziada inaweza kusaidia debugging mbinu,
lakini siyo vizuri mazoezi ya takataka code yako kwa mabano unneeded.
Kuchukua muda kujifunza msingi operator sheria ya kuendelezwa.
>> pili kanuni ya jumla ni kwamba wakati waendeshaji kuwa priorty sawa,
wewe tu kutatua kutoka kushoto kwenda kulia.
Wakati wa kushughulika na math rahisi sisi kuanza na mabano,
kisha kufanya kuzidisha na kugawanya, na mwishowe kufanya kujumlisha na kutoa.
Kuzidisha na kugawanya kuwa na kipaumbele huo,
kwa sababu wao ni kimsingi kufanya operesheni moja.
Baada ya mgawanyiko wote ni tu kuzidisha na Inverse ya thamani.
Vile vile, utoaji ni tu kuongeza thamani hasi.
>> Hebu kufanya mfano.
Kufuatia amri ya precedence, tutaweza kuanza na mabano. Tisa minus 1.
Hiyo itatupa 8. Kisha tunaweza kuendelea na mgawanyiko na kuzidisha.
Tutaweza kutatua kutoka kushoto kwenda kulia. Hivyo 10 kugawanywa na 2 ni 5.
Tuna mara 5 8 hapa, na kwamba atatupa 40.
Kisha sisi kuendelea na utaratibu ijayo ya kuendelezwa.
Hivyo sisi ni wa kushoto na 3 plus minus 40 1.
Tena tu kutatua kushoto na kulia,
sababu kuna sawa kipaumbele kati ya kujumlisha na kutoa.
Tunaweza kusema 3 plus 40 ni 43, minus 1 ni 42. Hiyo ni jibu letu.
>> Kuna aina 2 ya kampuni za pungufu na increment;
fomu kiambishi awali, na fomu suffix.
fomu suffix, i + +, ni kawaida kutumika katika kwa tanzi,
ambayo ina maana kwamba thamani ya sasa ni kutumika katika kujieleza, na kisha ni incremented.
Hivyo thamani itakuwa tu tofauti wakati ujao variable ni kutumika.
Kwa upande mwingine, increment kiambishi awali au pungufu ina maana kwamba thamani ya sasa ya
ni incremented au decremented kwanza, na kisha ni kutumika katika kujieleza.
>> Hebu chukua mfano kwa x integer.
Tutaweza kuliweka sawa na 5.
Kama sisi kutumia operator suffix juu yake na kusema x + +, x juu ya mstari huu ni bado 5.
Kama tulikuwa na magazeti ni nje tunataka kupata thamani 5.
Lakini kwenda mbele x1 ukweli sawa na 6.
Hivyo haki hapa kwenye x line hii ni sawa na 6, na kama sisi kuchapishwa nje tunataka kupata thamani 6.
Sasa kama sisi kutumika operator kiambishi awali, + + x, x ni incremented kwanza, na kisha thamani ni kutumika.
Hivyo ni sawa na 7 juu ya mstari huu.
Incrementing bila shaka 6-7, na kama tulikuwa na magazeti ni nje tunataka kupata thamani 7.
>> nuance mwisho katika precendence kwamba tutaangalia mikataba na nukuu pointer.
operator dereference, nyota, ina kipaumbele juu ya waendeshaji msingi math,
lakini si zaidi ya incement suffix na waendeshaji pungufu.
Hii imesababisha sisi mfano wetu wa mwisho.
Hebu x integer na kuliweka sawa na 7.
Tutaweza pia kufanya y pointer na kuliweka sawa na anuani ya x.
Hivyo kwamba wakati sisi dereference y tunapaswa kupata thamani 7.
Sasa katika mstari wa kanuni, tuna hali fulani utata.
Je, sisi dereferencing y kwanza, na kisha incrementing thamani 7?
Au ni sisi incrementing pointer na kisha dereferencing yake?
Kwa kweli, kwa sababu increment suffix operator ina precedence juu ya
operator dereference, sisi ni kujaribu increment y pointer,
ambayo itakuwa hoja pointer na ukubwa wa ka int.
Kimsingi, akitupa anwani katika baadhi ya uhakika tofauti kabisa katika kumbukumbu,
na kisha sisi ni dereferencing yake.
Hivyo hii ni sana maana mstari.
Kama sisi kweli alitaka increment thamani ya 7,
sisi ingekuwa kuweka operator dereference na y katika mabano.
Kisha tunaweza increment yake.
Hivyo wakati sisi isingekuwa incrementing x thamani na ya pili mstari wa mwisho wa code,
katika mstari wa mwisho wa code tunataka infact dereference y
kupata x thamani na increment kwamba.
Tutakuwa kushoto na thamani sawa na x 8.
>> Hapa ni recap ya haraka ya sheria precendence kwamba tumekuwa kuzungumzwa.
Tutaweza kuanza na mabano ndani na kazi nje.
Kisha sisi hoja juu ya suffix operators kama i + + au i -.
Kisha dereference na anuani ya kampuni kama nyota x au ampersand x,
na waendeshaji kiambishi awali kama + + i au - i.
Hatimaye sisi kufanya shughuli rahisi math kama mgawanyiko kuzidisha,, modulo.
Kisha Aidha, kutoa.
Hiyo precendence. Mimi nina Jordan Jozwiak, na hii ni CS50.
Tutaweza dereference na kutumia anwani na - jinsi ya kufanya wewe maneno ya kwamba?
Mimi nina kufanyika. Sawa.