1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence е како да се одговори на прашањето, што операцијата што треба да направам првиот? 2 00:00:10,540 --> 00:00:14,250 Дали решавањето математички равенки или парсирање линии на компјутерски код, 3 00:00:14,250 --> 00:00:17,230 постојат строги правила на предност на кој ние се придржуваат 4 00:00:17,230 --> 00:00:20,270 така што сите компјутери и луѓето можат да го добиете истиот резултат. 5 00:00:20,270 --> 00:00:24,710 >> Најпрво, најважно правило е да се запамети, особено во бубачка тестирање, 6 00:00:24,710 --> 00:00:27,680 е дека ние секогаш работа од најскриената загради нанадвор. 7 00:00:27,680 --> 00:00:31,120 Користење на дополнителни загради може да биде корисен за дебагирање тактика, 8 00:00:31,120 --> 00:00:34,640 но тоа не е добра пракса да легло вашиот код со непотребни заграда. 9 00:00:34,640 --> 00:00:38,220 Одвојте време да се научат основните оператор предност правила. 10 00:00:38,220 --> 00:00:42,450 >> Вториот општо правило е дека кога операторите имаат еднакви priorty, 11 00:00:42,450 --> 00:00:44,820 можете едноставно реши од лево кон десно. 12 00:00:44,820 --> 00:00:47,690 Кога се занимаваат со едноставни математички почнеме со загради, 13 00:00:47,690 --> 00:00:52,110 потоа направи множење и делење, и на крај се направи собирање и одземање. 14 00:00:52,110 --> 00:00:54,400 Множење и делење имаат ист приоритет, 15 00:00:54,400 --> 00:00:56,870 бидејќи тие се во суштина вршење на истата работа. 16 00:00:56,870 --> 00:01:00,880 По сите поделбата е едноставно множење со инверзија на вредност. 17 00:01:00,880 --> 00:01:04,300 Слично на тоа, одземање е едноставно додавање на негативна вредност. 18 00:01:04,300 --> 00:01:06,150 >> Да направиме еден пример. 19 00:01:14,470 --> 00:01:18,300 По Редот на првенство, ние ќе започнеме со заграда. Девет минус 1. 20 00:01:18,300 --> 00:01:23,410 Тоа ќе ни даде 8. Тогаш можеме да се движи кон поделба и множење. 21 00:01:23,410 --> 00:01:27,450 Ние ќе го решиме од лево кон десно. Па 10 поделен со 2 е 5. 22 00:01:27,450 --> 00:01:31,290 Имаме 5 пати 8 тука, и дека ќе ни даде 40. 23 00:01:33,230 --> 00:01:35,410 Потоа се движиме кон следниот редослед на приоритет. 24 00:01:35,410 --> 00:01:38,730 Па ние сме оставени со 3 плус 40 минус 1. 25 00:01:42,400 --> 00:01:43,700 Повторно само решавање лево кон десно, 26 00:01:43,700 --> 00:01:47,650 бидејќи има еднаков приоритет меѓу собирање и одземање. 27 00:01:47,650 --> 00:01:51,510 Можеме да кажеме 3 плус 40 изнесува 43, минус 1 е 42. Тоа е нашиот одговор. 28 00:01:53,920 --> 00:01:56,730 >> Постојат 2 вида на декриминирачките и зголемување оператори; 29 00:01:56,730 --> 00:02:01,000 Префиксот форма, и суфиксот форма. 30 00:02:01,000 --> 00:02:06,130 Суфиксот форма, i + +, најчесто се користи во за петелки, 31 00:02:06,130 --> 00:02:10,500 што значи дека сегашната вредност се користи во израз, а потоа се зголемува. 32 00:02:10,500 --> 00:02:14,240 Значи вредност само ќе бидат различни следниот пат кога променливата се користи. 33 00:02:14,240 --> 00:02:17,910 Од друга страна, префикс зголемување или некоја вредност значи дека сегашната вредност 34 00:02:17,910 --> 00:02:22,760 се зголемува или decremented, а потоа се користи во изразување. 35 00:02:22,760 --> 00:02:25,310 >> Да го земеме за пример со цел број x. 36 00:02:25,310 --> 00:02:27,220 Ние ќе го постави еднаква на 5. 37 00:02:27,220 --> 00:02:36,500 Ако ние ги користиме на суфиксот оператор на него и да каже x + +, x на оваа линија се уште е 5. 38 00:02:36,500 --> 00:02:39,230 Ако бевме да го испечатите ние ќе ја добие вредност 5. 39 00:02:39,230 --> 00:02:42,540 Но оди напред x1 фактот изнесува 6. 40 00:02:42,540 --> 00:02:48,770 Па токму тука на оваа линија x е еднаква на 6, а ако го испечати ние ќе ја добие вредност 6. 41 00:02:48,770 --> 00:02:57,380 Сега ако ние се користи префиксот оператор, + + x, x се зголемува, а потоа на вредноста се користи. 42 00:02:57,380 --> 00:03:00,110 Така, тоа е еднаква на 7 на оваа линија. 43 00:03:00,110 --> 00:03:04,750 Зголемување, се разбира 6-7, и ако ние требаше да го испечатите ние ќе ја добие вредност 7. 44 00:03:04,750 --> 00:03:09,160 >> Последните нијанса во precendence дека ние ќе го разгледаме занимава со покажувач нотација. 45 00:03:09,160 --> 00:03:15,050 На Dereference оператор, ѕвезда, има приоритет во однос на основни математички оператори, 46 00:03:15,050 --> 00:03:18,550 но не и во текот на суфиксот incement и декриминирачките оператори. 47 00:03:18,550 --> 00:03:20,690 Ова не води до нашата крајна пример. 48 00:03:20,690 --> 00:03:24,500 Да го земеме број x и го еднаква на 7. 49 00:03:24,500 --> 00:03:30,540 Ние, исто така, ќе се направи покажувачот y и го еднаква на адреса на x. 50 00:03:30,540 --> 00:03:34,920 Така што кога ние Dereference y ние треба да добие вредност 7. 51 00:03:34,920 --> 00:03:39,380 Сега во оваа линија код, имаме донекаде двосмислени ситуација. 52 00:03:39,380 --> 00:03:44,310 Дали сме dereferencing y прво, а потоа ја зголемува бројката 7? 53 00:03:44,310 --> 00:03:48,300 Или ние ја зголемува покажувач, а потоа dereferencing тоа? 54 00:03:48,300 --> 00:03:52,800 Всушност, бидејќи на суфиксот прираст оператор има предност во однос на 55 00:03:52,800 --> 00:03:55,370 на Dereference оператор, ние се обидуваш за зголемување на покажувачот y, 56 00:03:55,370 --> 00:03:59,170 кој ќе се движи покажувачот од големината на int бајти. 57 00:03:59,170 --> 00:04:03,040 Во суштина ни дава адресата во некои сосема поинаква точка во меморијата, 58 00:04:03,040 --> 00:04:05,010 и тогаш ние тоа dereferencing. 59 00:04:05,010 --> 00:04:07,350 Значи ова е многу бесмислени линија. 60 00:04:07,350 --> 00:04:10,250 Ако ние всушност сакаа за зголемување на вредноста на 7, 61 00:04:10,250 --> 00:04:14,260 ние ќе мора да се стави на Dereference оператор со y во заграда. 62 00:04:14,260 --> 00:04:17,290 Тогаш ние би можеле да го прираст. 63 00:04:17,290 --> 00:04:21,089 Значи, додека ние не би се зголемува бројката x со втората до последното линија код, 64 00:04:21,089 --> 00:04:23,380 во последната линија од кодот ние ќе infact Dereference y 65 00:04:23,380 --> 00:04:26,380 да се добие вредноста на x и прираст тоа. 66 00:04:26,380 --> 00:04:29,540 Ние ќе бидат оставени со вредноста x е еднаква на 8. 67 00:04:31,580 --> 00:04:33,580 >> Еве еден брз повториме на precendence правила кои ние разговаравме за. 68 00:04:33,580 --> 00:04:37,210 Ќе започнеме со внатрешниот загради и да работат надвор. 69 00:04:37,210 --> 00:04:41,210 Потоа се движиме за да суфиксот оператори како i + + или јас -. 70 00:04:41,210 --> 00:04:45,920 Потоа Dereference и адреса на оператори како ѕвезда x или симболот x, 71 00:04:45,920 --> 00:04:50,260 и префиксот оператори како + + i или - i. 72 00:04:50,260 --> 00:04:54,920 Конечно го правиме на едноставни математички операции како множење, делење модул. 73 00:04:54,920 --> 00:04:58,400 Потоа собирање, одземање. 74 00:04:58,400 --> 00:05:02,170 Тоа е precendence. Јас сум Јордан Jozwiak, и ова е CS50. 75 00:05:04,160 --> 00:05:10,480 Ќе Dereference и да го користите адреса и - како да направите фраза што? 76 00:05:12,380 --> 00:05:13,190 Јас сум сторил. Во ред.