[Powered by Google Translate] Precendence, як мы адкажам на пытанне, якія аперацыі мы павінны зрабіць у першую чаргу?
Калі рашэння матэматычных раўнанняў або разбору радкоў праграмнага кода,
існуюць строгія правілы прыярытэту, да якога мы прытрымліваемся
так што ўсе кампутары, і людзі могуць атрымаць той жа вынік.
>> Па-першае, самае важнае правіла для запамінання, асабліва ў памылцы тэставання,
з'яўляецца тое, што мы заўсёды працуем з унутранага дужкі вонкі.
Выкарыстанне дадатковых круглых дужках можа быць карысным тактыка адладкі,
але гэта не вельмі добрая практыка, каб смецце код з непатрэбнымі дужках.
Выдаткуйце час, каб вывучыць асноўныя правілы прыярытэту аператараў.
>> Другое агульнае правіла абвяшчае, што, калі аператары маюць роўныя priorty,
Вы проста вырашыць злева направа.
Калі маеш справу з простай матэматыцы мы пачынаем з дужках,
затым выканаеце множанне і дзяленне, і, нарэшце, рабіць складанне і адніманне.
Множанне і дзяленне маюць аднолькавы прыярытэт,
таму што яны, па сутнасці выконваючы тую ж працу.
Бо падзел проста множанне на адваротны значэнне.
Сапраўды гэтак жа, адніманне проста дадаўшы адмоўнае значэнне.
>> Давайце зробім прыклад.
Пасля парадку чарговасці, мы пачнем з дужках. Дзевяць мінус 1.
Гэта дасць нам 8. Тады мы можам перайсці да дзялення і размнажэння.
Мы вырашым злева направа. Так 10 падзяліць на 2 роўна 5.
У нас ёсць 5 разоў 8 тут, і гэта дасць нам 40.
Затым мы пяройдзем да наступнага парадку старшынства.
Такім чынам, мы пакінулі з 3 плюс 40 мінус 1.
Зноў жа толькі рашэння злева направа,
таму што ёсць роўны прыярытэт паміж складаннем і адніманнем.
Мы можам сказаць 3 плюс 40 на 43, мінус 1, 42. Гэта наш адказ.
>> Ёсць 2 тыпу декремент і інкрэмент;
Прэфікс форме, і суфікс форме.
Суфікс форме, я + +, шырока выкарыстоўваецца ў цыклы,
Гэта азначае, што бягучае значэнне выкарыстоўваецца ў выразе, а затым яна павялічваецца.
Такім чынам, кошт толькі будзе розным у наступны раз пераменная выкарыстоўваецца.
З іншага боку, прырост або змяншэнне прэфікса азначае, што бягучае значэнне
павялічваецца ці памяншаецца, а затым яна выкарыстоўваецца ў выразе.
>> Давайце возьмем прыклад з цэлымі х.
Мы усталюем яго роўным 5.
Калі мы выкарыстоўваем суфікс аператара на ім і кажуць х + +, х на гэтай лініі яшчэ 5.
Калі б мы маглі раздрукаваць яго, што мы атрымаем значэнне 5.
Але ісці наперад факт x1 роўная 6.
Так што прама тут, на гэтай лініі х роўная 6, і калі мы друкавалі яго мы атрымаем значэнне 6.
Цяпер, калі мы выкарыстоўвалі прэфікс аператара, + + х, х павялічваецца, а затым выкарыстоўваецца значэнне.
Так што роўна 7 на гэтай лініі.
Інкрэмент, вядома, ад 6 да 7, і калі б мы павінны былі раздрукаваць яго, што мы атрымаем значэнне 7.
>> Апошні нюанс у precendence, што мы будзем глядзець на справу з паказальнікам наймення.
Аператар разнаймення, зорка, мае прыярытэт над асноўнымі аператарамі матэматыцы,
, Але не больш за incement суфіксаў і декремента.
Гэта прыводзіць нас да нашай канчатковай прыклад.
Давайце возьмем лік х і ўсталяваць яго роўным 7.
Мы таксама зрабіць паказальнік у і ўсталяваць яго роўным па адрасе х.
Так што, калі мы разнаймення у мы павінны атрымаць значэнне 7.
Цяпер у гэтай радку кода, у нас ёсць некалькі двухсэнсоўнай сітуацыі.
Няўжо мы разнаймення ў першага, а затым павялічваючы значэнне 7?
Ці мы прырашчэнне паказальніка, а затым разнаймення гэта?
На самай справе, так як аператар суфікс прырост мае прыярытэт над
разыменовать аператар, мы спрабуем павялічыць паказальнік у,
які б перамясціць паказальнік па памеры Int байт.
Па сутнасці дае нам адрас у некаторых зусім іншы кропкі ў памяці,
а потым мы разнаймення яго.
Так што гэта вельмі бессэнсоўныя лініі.
Калі мы на самай справе хацелі павялічыць значэнне 7,
мы павінны былі б паставіць аператар разнаймення з у ў дужках.
Тады мы маглі б павялічыць яго.
Такім чынам, хоць мы б не павялічваючы значэнне х з другога да апошняга радка кода,
У апошняй радку кода мы б фактычна ў разнаймення
каб атрымаць значэнне х і павялічваць гэта.
Мы не застанецца значэнне х роўна 8.
>> Вось кароткае рэзюмэ precendence правілы, пра якія мы гаварылі.
Пачнем з самых ўнутраных дужак і працаваць вонкі.
Затым мы пяройдзем да суфікс аператары, як я + +, ці я -.
Тады разнаймення і адрас аператара, як зоркі х ці амперсанда х,
і прэфікс аператары, такія як + + ці я - я.
Нарэшце, мы робім простыя матэматычныя аперацыі, як множанне, дзяленне па модулю.
Тады складанне, адніманне.
Вось precendence. Я Іарданіі Jozwiak, і гэта CS50.
Мы будзем разнаймення і выкарыстоўваць адрасы і - як вам фраза?
Я зрабіў. Добра.