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 >> 第二個一般的規則是,當運營商有平等的先決, 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 這將會給我們。然後我們就可以移動到除法和乘法。 21 00:01:23,410 --> 00:01:27,450 我們會解決由左到右。所以10除以2。 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 後綴的形式,我+ +,常用的是在for循環中, 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 遞增或遞減第一,然後它被用在表達式。 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 解引用運算符,星型,在基本的數學運算符的優先級, 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 所以,當我們解引用Ÿ我們應該得到的值7。 51 00:03:34,920 --> 00:03:39,380 在這行代碼中,我們有一個有點含糊不清的情況。 52 00:03:39,380 --> 00:03:44,310 我們提領y首先,然後遞增值7? 53 00:03:44,310 --> 00:03:48,300 我們遞增指針,然後提領它? 54 00:03:48,300 --> 00:03:52,800 事實上,由於後綴遞增運算符的優先級高於 55 00:03:52,800 --> 00:03:55,370 解引用運算符,我們正在試圖增加的指針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 然後我們提領。 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 我們必須把解引用運算符與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 在代碼的最後一行,我們來日歲月,會讓你知道,解引用Ÿ 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 然後解引用和地址的運營商,如星X或符號x, 71 00:04:45,920 --> 00:04:50,260 前綴運算符,如+ + 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 我們將取消引用和使用的地址 - 你怎麼短語? 76 00:05:12,380 --> 00:05:13,190 我所做的一切。好吧。