[Powered by Google Translate] Precendence е как да се отговори на въпроса, каква операция трябва да направя първо?
Дали решаване на математически уравнения или разбор линии на компютърен код,
има строги правила за предимство, за които ние се придържаме
така че всички компютри и хората могат да получат същия резултат.
>> Първо, най-важното правило, за да се помни, особено в бъг тестване,
е, че ние винаги работим от най-съкровените скоби пасивно.
Използването на допълнителни скоби може да бъде полезна тактика за отстраняване на грешки,
но това не е добра практика на носилка кода си с ненужни скоби.
Отделете време, за да научат основните правилата за предимство на операторите.
>> Второто правило е, че когато операторите имат равен priorty
просто реши от ляво на дясно.
Когато става въпрос за проста математика да започнем със скоби,
след това направете умножение и деление, и накрая направи събиране и изваждане.
Умножение и деление имат еднакъв приоритет,
защото те са по същество извършване на една и съща операция.
След всяко разделение е просто умножаване с обратна на стойност.
По същия начин, изваждането е просто добавяне на отрицателна стойност.
>> Нека направим един пример.
След по реда на старшинството, ние ще започнем с скоби. Девет минус 1.
Това ще ни даде 8. Тогава ще можем да преминем към деление и умножение.
Ние ще решим от ляво на дясно. Така 10 разделено на две е пет.
Ние имаме 5 пъти 8 тук, и това ще ни даде 40.
Тогава да преминем към следващия ред на предимство.
Така че ние сме оставени с 3 плюс 40, минус 1.
Отново само решаване на ляво на дясно,
защото има еднакъв приоритет между събиране и изваждане.
Можем да кажем, 3 плюс 40 е 43, минус 1 е 42. Това е нашият отговор.
>> Има два вида намалявате и нарастване оператори;
Представката форма и наставка формата.
Наставката форма, аз + +, често се използва за електрически вериги,
което означава, че текущата стойност се използва в израза, а след това се увеличава.
Така стойност само ще бъде различен следващия път променлива се използва.
От друга страна, представката печалбата или декремент означава, че текущата стойност
се увеличава или декрементирани първи, а след това се използва в израза.
>> Да вземем един пример с цяло число х.
Ние ще го настроите равно на 5.
Ако използваме наставката оператор върху него и да кажа х + +, х по тази линия все още е 5.
Ако трябва да го разпечатате, ще получим стойност 5.
Но върви напред x1 факта, се равнява на 6.
Така че тук по тази линия х е равно на 6, и ако го отпечатва ще получим стойност 6.
Сега, ако ние използвахме префикс оператор, + + X, X се увеличава, а след това стойността се използва.
Така че по тази линия е равна на 7.
Увеличаването на курс 6-7, и ако трябва да го разпечатате ще получим стойност 7.
>> Последният нюанс в precendence, че ние ще търсим при сделки с показалеца нотация.
Сочен оператор, звезда, има приоритет над основни операции по математика,
но не повече от наставката incement и декремент оператори.
Това ни води до окончателното нашия пример.
Нека вземем цяло число х и равна на 7.
Ние също така ще направи г. показалеца и го определя като равна на адреса на х.
Така че, когато ние сочен г. ние трябва да получи стойност 7.
Сега, в този ред на кода, имаме донякъде двусмислено положение.
Ние dereferencing г. първата, и след това увеличаване на стойност 7?
Или сме увеличаване на показалеца и след това го dereferencing?
В действителност, тъй като операторът наставка увеличение има предимство пред
сочен оператор, ние се опитвате да увеличите г. показалеца,
, които ще се движат показалеца от размера на INT байта.
По същество ни дава адрес в някои съвсем различна гледна точка в паметта,
и след това ние сме го dereferencing.
Така че това е много безсмислени линия.
Ако ние всъщност исках да увеличите стойността на 7,
ние ще трябва да постави и сочен с оператор г. в скоби.
Тогава бихме могли да го увеличите.
Така че, докато ние не ще бъде увеличаване на стойността х с втора до последния ред на кода,
в последния ред на код надве-натри г. и сочен
да получите х стойност и нарастване че.
Ние ще бъдат оставени с х стойност се равнява на 8.
>> Ето един бърз рекапитулация на precendence правила, които сме говорили за.
Ще започнем с най-съкровените скоби и да работят навън.
След това се премести на окончанието оператори като + + или аз -
Тогава сочен и адрес на оператори като звезда Х или амперсанд X,
и префикс оператори като + + I или -.
Накрая правим прости математически операции като умножение, деление, модул.
След събиране, изваждане.
Това е precendence. Съм Йордан Jozwiak, и това е CS50.
Ние ще сочен и използвате адреса и - как го правиш фраза, която
Свърша. Добре.