1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence estas kiel ni respondi la demandon, kio operacio ni faru unuan? 2 00:00:10,540 --> 00:00:14,250 Ĉu solvanta math ekvacioj aŭ sintaksa analizo linioj de komputilo kodo, 3 00:00:14,250 --> 00:00:17,230 ekzistas striktaj reguloj de prioritaton al kiu ni aliĝas 4 00:00:17,230 --> 00:00:20,270 por ke cxiuj komputiloj kaj homoj povas preni la sama rezulto. 5 00:00:20,270 --> 00:00:24,710 >> Unua for, la plej grava regulo por memori, speciale en cimo testado, 6 00:00:24,710 --> 00:00:27,680 estas, ke ni ĉiam labori de la plej interna parentezoj eksteren. 7 00:00:27,680 --> 00:00:31,120 Uzanta ekstra krampoj povas esti helpema depuración taktiko, 8 00:00:31,120 --> 00:00:34,640 sed ĝi ne estas bona praktiko por portilo vian kodon kun unneeded krampoj. 9 00:00:34,640 --> 00:00:38,220 Prenu la tempo por lerni baza operatoro prioritaton reguloj. 10 00:00:38,220 --> 00:00:42,450 >> La dua ĝenerala regulo estas, ke kiam operatoroj havas egalajn priorty, 11 00:00:42,450 --> 00:00:44,820 vi simple solvi de maldekstre al dekstre. 12 00:00:44,820 --> 00:00:47,690 Kiam kontraktanta kun simplaj matematikaj ni starti kun parentezoj, 13 00:00:47,690 --> 00:00:52,110 tiam faru multipliko kaj divido, kaj fine fari adicio kaj subtraho. 14 00:00:52,110 --> 00:00:54,400 Multipliko kaj divido havas saman prioritaton, 15 00:00:54,400 --> 00:00:56,870 ĉar ili esence plenumante la sama operacio. 16 00:00:56,870 --> 00:01:00,880 Post ĉiu divido estas simple multiplikante per la inverso de valoro. 17 00:01:00,880 --> 00:01:04,300 Simile, subtraho estas simple aldonante negativa valoro. 18 00:01:04,300 --> 00:01:06,150 >> Ni faru ekzemplon. 19 00:01:14,470 --> 00:01:18,300 Post la ordo de prioritato, ni starti kun la krampoj. Naŭ minus 1. 20 00:01:18,300 --> 00:01:23,410 Kiu donos al ni 8. Tiam ni povas movi al la divido kaj multipliko. 21 00:01:23,410 --> 00:01:27,450 Ni solvas de maldekstre al dekstre. Do 10 dividite per 2 estas 5. 22 00:01:27,450 --> 00:01:31,290 Ni havas 5 fojoj 8 tie, kaj kiu donos al ni 40. 23 00:01:33,230 --> 00:01:35,410 Tiam ni movi al la venonta ordono de prioritaton. 24 00:01:35,410 --> 00:01:38,730 Do ni marŝis kun 3 plus 40 minus 1. 25 00:01:42,400 --> 00:01:43,700 Denove nur solvi maldekstre dekstren, 26 00:01:43,700 --> 00:01:47,650 ĉar ne estas egala prioritato inter la adicio kaj subtraho. 27 00:01:47,650 --> 00:01:51,510 Ni povas diri 3 plus 40 estas 43, minus 1 estas 42. Tio estas nia respondo. 28 00:01:53,920 --> 00:01:56,730 >> Estas 2 tipoj de dekremento kaj pliigo operatoroj; 29 00:01:56,730 --> 00:02:01,000 La prefikso formo, kaj la sufikso formo. 30 00:02:01,000 --> 00:02:06,130 La sufikso formo, i + +, estas kutime uzitaj en por cikloj, 31 00:02:06,130 --> 00:02:10,500 kio signifas, ke la aktuala valoro estas uzita en la esprimo, kaj tiam ĝi estas incremented. 32 00:02:10,500 --> 00:02:14,240 Do valoron nur estos malsama la proksima fojo la variablo estas uzata. 33 00:02:14,240 --> 00:02:17,910 Aliflanke, la prefikso pliigo aŭ dekremento signifas ke la aktuala valoro 34 00:02:17,910 --> 00:02:22,760 estas incremented aŭ decremented unue, kaj poste ĝi estas uzata en la esprimo. 35 00:02:22,760 --> 00:02:25,310 >> Ni prenu ekzemplon kun la entjero x. 36 00:02:25,310 --> 00:02:27,220 Ni starigis ĝin egala al 5. 37 00:02:27,220 --> 00:02:36,500 Se ni uzas la sufikson operatoro sur ĝi, kaj diros x + +, x sur ĉi tiu linio estas ankoraŭ 5. 38 00:02:36,500 --> 00:02:39,230 Se ni devis presi ĝin ni devus preni la valoro 5. 39 00:02:39,230 --> 00:02:42,540 Sed irante antaŭen x1 fakto egalas 6. 40 00:02:42,540 --> 00:02:48,770 Do ĝuste sur ĉi tiu linio x egalas al 6, kaj se ni presas gxin ni ricevi la valoron 6. 41 00:02:48,770 --> 00:02:57,380 Nun se ni uzas la prefikson operatoro, + + x, x estas incremented unue, kaj poste la valoro estas uzita. 42 00:02:57,380 --> 00:03:00,110 Do ĝi estas egala al 7 en ĉi tiu linio. 43 00:03:00,110 --> 00:03:04,750 Pliigante kompreneble 6 al 7, kaj se ni devis presi ĝin ni devus akiri la valoron 7. 44 00:03:04,750 --> 00:03:09,160 >> La lasta nuanco en precendence ke ni rigardu traktas puntero skribmaniero. 45 00:03:09,160 --> 00:03:15,050 La dereference operatoro, stelo, havas prioritaton super bazaj matematikaj operatoroj, 46 00:03:15,050 --> 00:03:18,550 sed ne super la sufikso incement kaj dekremento operatoroj. 47 00:03:18,550 --> 00:03:20,690 Tio kondukas nin al nia fina ekzemplo. 48 00:03:20,690 --> 00:03:24,500 Ni prenu la entjero x kaj starigis ĝin egala al 7. 49 00:03:24,500 --> 00:03:30,540 Ni ankaŭ faras puntero y kaj starigis ĝin egala al la adreso de x. 50 00:03:30,540 --> 00:03:34,920 Por ke, kiam ni dereference y ni devus ricevi la valoron 7. 51 00:03:34,920 --> 00:03:39,380 Nun en tiu linio de kodo, ni havas iom ambigua situacio. 52 00:03:39,380 --> 00:03:44,310 Ĉu ni dereferencing y unue, kaj poste pliigante la valoron 7? 53 00:03:44,310 --> 00:03:48,300 Aŭ ni pliigante la puntero kaj poste dereferencing ĝin? 54 00:03:48,300 --> 00:03:52,800 Fakte, ĉar la sufikso pliigo operatoro havas prioritaton super 55 00:03:52,800 --> 00:03:55,370 la dereference operatoro, ni provas pliigo la puntero y, 56 00:03:55,370 --> 00:03:59,170 kiu movas la puntero por grandeco de int bajtoj. 57 00:03:59,170 --> 00:04:03,040 Esence al ni adreson en iu tute malsama punkto en memoro, 58 00:04:03,040 --> 00:04:05,010 kaj poste ni dereferencing ĝin. 59 00:04:05,010 --> 00:04:07,350 Do ĉi tiu estas tre sensignifa linio. 60 00:04:07,350 --> 00:04:10,250 Se ni efektive volis pliigo la valoron de 7, 61 00:04:10,250 --> 00:04:14,260 ni devus meti la dereference operatoro kun y en krampoj. 62 00:04:14,260 --> 00:04:17,290 Tiam ni povus pliigo ĝin. 63 00:04:17,290 --> 00:04:21,089 Do dum ni ne estus pliigante la valoron x per la dua al lasta linio de kodo, 64 00:04:21,089 --> 00:04:23,380 en la lasta linio de kodo oni farus infact dereference y 65 00:04:23,380 --> 00:04:26,380 por ricevi la valoron x kaj pliigo tio. 66 00:04:26,380 --> 00:04:29,540 Ni estus eliris kun la valoro x egalas 8. 67 00:04:31,580 --> 00:04:33,580 >> Jen rapida recap de la precendence reguloj kiuj ni jam parolis pri. 68 00:04:33,580 --> 00:04:37,210 Ni komencu per la plej interna parentezoj kaj labori eksteren. 69 00:04:37,210 --> 00:04:41,210 Tiam ni movi antaŭen al sufikso operatoroj kiel mi + + aŭ mi -. 70 00:04:41,210 --> 00:04:45,920 Tiam dereference kaj adreso de telefonistoj kiel stelo x aŭ signo x, 71 00:04:45,920 --> 00:04:50,260 kaj la prefikso operatoroj kiel + + i aŭ - mi. 72 00:04:50,260 --> 00:04:54,920 Fine ni do la simplaj matematikaj operacioj kiel multipliko, divido, module. 73 00:04:54,920 --> 00:04:58,400 Tiam Krome, subtraho. 74 00:04:58,400 --> 00:05:02,170 Tio precendence. Mi Jordan Jozwiak, kaj ĉi tiu estas CS50. 75 00:05:04,160 --> 00:05:10,480 Ni instruos vin dereference kaj uzu la adreson kaj - kiel vi frazo tion? 76 00:05:12,380 --> 00:05:13,190 Mi faris. Okay.