1 00:00:07,780 --> 00:00:10,540 [Powered by Google Translate] される優先度は、我々が質問に答える方法は、まず、どのような操作を行う必要がありますか? 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 我々は左から右に解決します。だから2で割った10は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 + +は、一般的に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 >> 我々はポインタ表記を扱って見ていきますことをされる優先度の最後のニュアンス。 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 ように、我々は、yを間接参照するときに、我々は値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 だから我々はコードの最後の2行目では、との値xをインクリメントすることがないだろうが、 64 00:04:21,089 --> 00:04:23,380 コー​​ドの最後の行では、Infactはデリファレンスは、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 >> ここで我々が​​話をしたことをされる優先度のルールの迅速な要約です。 68 00:04:33,580 --> 00:04:37,210 我々は、最も内側の括弧から始まり、外側に動作します。 69 00:04:37,210 --> 00:04:41,210 その後、我々は、i + +やiのような接尾辞演算子に移る - 。 70 00:04:41,210 --> 00:04:45,920 スター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 それがされる優先度です。私はヨルダンJozwiakだし、これはCS50です。 75 00:05:04,160 --> 00:05:10,480 我々は、間接参照だろうとアドレスを使用して - どのようにあなたの言葉に行うのでしょうか? 76 00:05:12,380 --> 00:05:13,190 私は終わりました。オーケー。