1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] Precendence adalah bagaimana kita menjawab soalan, apa operasi yang kita harus lakukan dahulu? 2 00:00:10,540 --> 00:00:14,250 Sama ada menyelesaikan persamaan matematik atau garis parsing kod komputer, 3 00:00:14,250 --> 00:00:17,230 terdapat peraturan yang ketat keutamaan yang kita mematuhi 4 00:00:17,230 --> 00:00:20,270 supaya semua komputer dan orang ramai boleh mendapatkan keputusan yang sama. 5 00:00:20,270 --> 00:00:24,710 >> Mula-mula, peraturan yang paling penting untuk diingati, terutama dalam ujian pepijat, 6 00:00:24,710 --> 00:00:27,680 adalah bahawa kita sentiasa bekerja dari kurungan terdalam keluar. 7 00:00:27,680 --> 00:00:31,120 Menggunakan kurungan tambahan boleh menjadi taktik debugging berguna, 8 00:00:31,120 --> 00:00:34,640 tetapi ia bukan amalan yang baik untuk sampah kod anda dengan kurungan tidak diperlukan. 9 00:00:34,640 --> 00:00:38,220 Ambil masa untuk mempelajari asas pengendali keutamaan peraturan. 10 00:00:38,220 --> 00:00:42,450 >> Peraturan umum kedua ialah bahawa apabila pengendali mempunyai priorty sama, 11 00:00:42,450 --> 00:00:44,820 anda hanya menyelesaikan dari kiri ke kanan. 12 00:00:44,820 --> 00:00:47,690 Apabila berurusan dengan matematik mudah kita bermula dengan kurungan, 13 00:00:47,690 --> 00:00:52,110 kemudian melakukan pendaraban dan pembahagian, dan akhir sekali melakukan penambahan dan penolakan. 14 00:00:52,110 --> 00:00:54,400 Pendaraban dan pembahagian mempunyai keutamaan yang sama, 15 00:00:54,400 --> 00:00:56,870 kerana mereka pada dasarnya melaksanakan operasi yang sama. 16 00:00:56,870 --> 00:01:00,880 Selepas semua bahagian hanya mendarabkan oleh songsang nilai. 17 00:01:00,880 --> 00:01:04,300 Begitu juga, penolakan hanya menambah nilai negatif. 18 00:01:04,300 --> 00:01:06,150 >> Mari kita buat contoh. 19 00:01:14,470 --> 00:01:18,300 Berikutan perintah itu keutamaan, kita akan bermula dengan kurungan. Sembilan tolak 1. 20 00:01:18,300 --> 00:01:23,410 Yang akan memberi kita 8. Kemudian kita boleh bergerak untuk pembahagian dan pendaraban. 21 00:01:23,410 --> 00:01:27,450 Kami akan menyelesaikan dari kiri ke kanan. Jadi 10 dibahagikan dengan 2 ialah 5. 22 00:01:27,450 --> 00:01:31,290 Kami mempunyai 5 kali 8 di sini, dan yang akan memberikan kita 40. 23 00:01:33,230 --> 00:01:35,410 Kemudian kita bergerak kepada perintah seterusnya keutamaan. 24 00:01:35,410 --> 00:01:38,730 Jadi kita ditinggalkan dengan 3 ditambah 40 tolak 1. 25 00:01:42,400 --> 00:01:43,700 Sekali lagi hanya menyelesaikan kiri ke kanan, 26 00:01:43,700 --> 00:01:47,650 kerana ada keutamaan yang sama antara penambahan dan penolakan. 27 00:01:47,650 --> 00:01:51,510 Kita boleh katakan 3 ditambah 40 adalah 43, tolak 1 ialah 42. Itulah jawapan kita. 28 00:01:53,920 --> 00:01:56,730 >> Terdapat 2 jenis operator susutan dan kenaikan; 29 00:01:56,730 --> 00:02:01,000 Bentuk awalan, dan bentuk akhiran. 30 00:02:01,000 --> 00:02:06,130 Bentuk akhiran, i + +, biasanya digunakan untuk gelung, 31 00:02:06,130 --> 00:02:10,500 yang bermaksud bahawa nilai semasa digunakan dalam ungkapan, dan kemudian ia incremented. 32 00:02:10,500 --> 00:02:14,240 Jadi nilai hanya akan berbeza masa depan pembolehubah digunakan. 33 00:02:14,240 --> 00:02:17,910 Sebaliknya, kenaikan awalan atau susutan bermakna bahawa nilai semasa 34 00:02:17,910 --> 00:02:22,760 incremented atau decremented pertama, dan kemudian ia digunakan dalam ungkapan. 35 00:02:22,760 --> 00:02:25,310 >> Mari kita mengambil contoh dengan x integer. 36 00:02:25,310 --> 00:02:27,220 Kami akan menetapkan sama hingga 5. 37 00:02:27,220 --> 00:02:36,500 Jika kita menggunakan pengendali akhiran di atasnya dan mengatakan x + +, x on-line ini masih 5. 38 00:02:36,500 --> 00:02:39,230 Jika kita adalah untuk mencetak ia keluar, kita akan mendapat nilai 5. 39 00:02:39,230 --> 00:02:42,540 Tetapi akan hakikat x1 hadapan bersamaan 6. 40 00:02:42,540 --> 00:02:48,770 Jadi di sini pada x baris ini adalah sama dengan 6, dan jika kita dicetak keluar kita akan mendapat nilai 6. 41 00:02:48,770 --> 00:02:57,380 Sekarang jika kita menggunakan pengendali awalan, + + x, x incremented pertama, dan kemudian nilai digunakan. 42 00:02:57,380 --> 00:03:00,110 Jadi ia adalah sama hingga 7 on-line ini. 43 00:03:00,110 --> 00:03:04,750 Incrementing 6 hingga 7 kursus, dan jika kita adalah untuk mencetak keluar kita akan mendapat nilai 7. 44 00:03:04,750 --> 00:03:09,160 >> Nuansa terakhir dalam precendence bahawa kita akan melihat tawaran dengan notasi penunjuk. 45 00:03:09,160 --> 00:03:15,050 Pengendali dereference, bintang, mempunyai keutamaan ke atas pengendali matematik asas, 46 00:03:15,050 --> 00:03:18,550 tetapi tidak lebih incement akhiran dan pengendali susutan. 47 00:03:18,550 --> 00:03:20,690 Ini membawa kita kepada contoh terakhir kami. 48 00:03:20,690 --> 00:03:24,500 Mari kita x integer dan menetapkan ia sama hingga 7. 49 00:03:24,500 --> 00:03:30,540 Kami juga akan membuat y penunjuk dan menetapkan ia sama dengan alamat x. 50 00:03:30,540 --> 00:03:34,920 Supaya apabila kita dereference y kita perlu mendapatkan nilai 7. 51 00:03:34,920 --> 00:03:39,380 Sekarang dalam baris ini kod, kita mempunyai situasi yang agak samar-samar. 52 00:03:39,380 --> 00:03:44,310 Adakah kita dereferencing y 1, dan kemudian incrementing nilai 7? 53 00:03:44,310 --> 00:03:48,300 Atau adakah kita incrementing penunjuk dan kemudian dereferencing ia? 54 00:03:48,300 --> 00:03:52,800 Malah, kerana pengendali akhiran kenaikan mempunyai keutamaan berbanding 55 00:03:52,800 --> 00:03:55,370 pengendali dereference, kita sedang cuba untuk menokokkan y penunjuk, 56 00:03:55,370 --> 00:03:59,170 yang akan bergerak penunjuk oleh saiz bait int. 57 00:03:59,170 --> 00:04:03,040 Asasnya memberi kami alamat di titik beberapa yang berbeza sepenuhnya dalam ingatan, 58 00:04:03,040 --> 00:04:05,010 dan kemudian kita dereferencing. 59 00:04:05,010 --> 00:04:07,350 Jadi ini adalah baris yang sangat bermakna. 60 00:04:07,350 --> 00:04:10,250 Jika kita benar-benar mahu kenaikan nilai 7, 61 00:04:10,250 --> 00:04:14,260 kita perlu meletakkan pengendali dereference dengan y dalam kurungan. 62 00:04:14,260 --> 00:04:17,290 Kemudian kita boleh kenaikan. 63 00:04:17,290 --> 00:04:21,089 Jadi sementara kita tidak akan incrementing x nilai dengan kedua kepada barisan terakhir kod, 64 00:04:21,089 --> 00:04:23,380 dalam baris terakhir kod kita akan Malah dereference y 65 00:04:23,380 --> 00:04:26,380 untuk mendapatkan nilai x dan kenaikan yang. 66 00:04:26,380 --> 00:04:29,540 Kami akan dibiarkan dengan nilai x sama dengan 8. 67 00:04:31,580 --> 00:04:33,580 >> Berikut adalah recap cepat peraturan precendence yang kita telah bercakap tentang. 68 00:04:33,580 --> 00:04:37,210 Kami akan bermula dengan kurungan terdalam dan bekerja keluar. 69 00:04:37,210 --> 00:04:41,210 Kemudian kita beralih kepada pengendali akhiran seperti i + + atau i -. 70 00:04:41,210 --> 00:04:45,920 Kemudian dereference dan alamat pengendali seperti bintang x atau #: glib x, 71 00:04:45,920 --> 00:04:50,260 dan operator seperti awalan + + i atau - i. 72 00:04:50,260 --> 00:04:54,920 Akhirnya kita melakukan operasi matematik yang mudah seperti pendaraban, pembahagian, modulo. 73 00:04:54,920 --> 00:04:58,400 Kemudian penambahan, penolakan. 74 00:04:58,400 --> 00:05:02,170 Itulah precendence. Saya Jordan Jozwiak, dan ini adalah CS50. 75 00:05:04,160 --> 00:05:10,480 Kami akan dereference dan menggunakan alamat dan bagaimana anda frasa yang? 76 00:05:12,380 --> 00:05:13,190 Saya selesai. Okay.