1 00:00:00,000 --> 00:00:02,670 >> [テーマ音楽] 2 00:00:02,670 --> 00:00:11,834 3 00:00:11,834 --> 00:00:13,365 >> SPEAKER 1:こんにちは、みんな。 4 00:00:13,365 --> 00:00:14,365 セクションに戻っようこそ。 5 00:00:14,365 --> 00:00:15,700 6 00:00:15,700 --> 00:00:18,700 私はなぜ、ある素敵な一日かゆうパックで 必ず、あなたの4は、ここでしかない 7 00:00:18,700 --> 00:00:21,180 とではない私たちのいつものパック。 8 00:00:21,180 --> 00:00:22,670 私はこの週末に病気だった。 9 00:00:22,670 --> 00:00:24,294 だから私はあなたたちのためにスターバーストを持っていません。 10 00:00:24,294 --> 00:00:26,400 そして、私は咳起動することがあり ひどくこれを通して。 11 00:00:26,400 --> 00:00:27,790 だから私と一緒に負担する。 12 00:00:27,790 --> 00:00:30,624 私は実際に試してみるつもりだ そして、最初にこの乗り切る 13 00:00:30,624 --> 00:00:32,290 しかし、私は咳発作を起こす前に。 14 00:00:32,290 --> 00:00:33,410 15 00:00:33,410 --> 00:00:37,390 しかし、単に私に簡単であること 私が尋ねるすべてのリトルbit--。 16 00:00:37,390 --> 00:00:39,370 17 00:00:39,370 --> 00:00:44,289 >> だからtoday--ための私達の議題だけ reminder--あなたのクイズは来週です。 18 00:00:44,289 --> 00:00:46,830 私はそれに、この最後の週あなたに言った ガードをあなたをキャッチしないであろう。 19 00:00:46,830 --> 00:00:47,954 だから私は再びあなたを思い出させるよ。 20 00:00:47,954 --> 00:00:49,180 来週のクイズ。 21 00:00:49,180 --> 00:00:52,730 そのために、来週の セクションには、はるかになる 22 00:00:52,730 --> 00:00:55,180 of--私はいくつかのレビューで試してみて、うまくいく。 23 00:00:55,180 --> 00:00:58,130 だから、君たちができれば、 私を送信することにより、私を助けて 24 00:00:58,130 --> 00:01:00,990 あなたが満足しているもの あなたが心配していること、と、 25 00:01:00,990 --> 00:01:03,530 あなたが探したいトピック カバーするために私に、それは素晴らしいことと思います。 26 00:01:03,530 --> 00:01:05,740 だから私は彼らを試してみて、動作することができます 私たちのセクション来週へ 27 00:01:05,740 --> 00:01:11,540 またはあなたに余分な材料や予備校を送る あなたが他の場所で取得していない可能性があること。 28 00:01:11,540 --> 00:01:12,150 >> うん! 29 00:01:12,150 --> 00:01:13,520 より多くの人々が来ている! 30 00:01:13,520 --> 00:01:17,320 私はひどく、最後のことをやった、と思った 今週は、誰も戻って来たいしないこと? 31 00:01:17,320 --> 00:01:18,065 私は怖い。 32 00:01:18,065 --> 00:01:18,892 33 00:01:18,892 --> 00:01:21,100 だから、他の三つのこと 私たちはオーバーに行くつもりだ 34 00:01:21,100 --> 00:01:24,850 リダイレクションは、ファイルI / Oであり、そして その後、ポインタと動的メモリ。 35 00:01:24,850 --> 00:01:29,160 私はあなたがすべてに約超興奮していると確信している 、みんなのお気に入りのトピックをpointers-- 36 00:01:29,160 --> 00:01:31,310 理解することはとても簡単。 37 00:01:31,310 --> 00:01:33,130 私はあなたたちはすべての権利、ことを持って確信している? 38 00:01:33,130 --> 00:01:39,510 >> したがって、最初のものは最初に、redirection-- これは基本的には単なる方法です 39 00:01:39,510 --> 00:01:42,920 どのように入力を制御する あなたのプログラムに物事、 40 00:01:42,920 --> 00:01:44,606 どのようにあなたのプログラムからあなたの出力の事。 41 00:01:44,606 --> 00:01:46,980 主な方法君たち それと対話されてきた 42 00:01:46,980 --> 00:01:51,650 ただ標準出力を介して行われ ここにあなたの印刷画面を持つ。 43 00:01:51,650 --> 00:01:55,940 それだけには方法があります 私たちはここに見るようにpipe-- 44 00:01:55,940 --> 00:01:58,980 私たちのwords--種類の1つである パイプの情報 45 00:01:58,980 --> 00:02:02,850 またはファイルからファイルにそのデータ。 46 00:02:02,850 --> 00:02:05,820 それはちょうど、異なる方法だ あなたのプログラムに物事を 47 00:02:05,820 --> 00:02:10,681 そしてあなたのプログラムの中から、代わりに ただ、この画面にそれらを印刷する 48 00:02:10,681 --> 00:02:12,430 や物事を入力 コマンドラインから。 49 00:02:12,430 --> 00:02:13,760 50 00:02:13,760 --> 00:02:18,030 >> だから、最初のものは少なく、 キャレットより大きい。 51 00:02:18,030 --> 00:02:22,085 それだけで出力を印刷しoutput--そう 代わりに、画面のファイルへ。 52 00:02:22,085 --> 00:02:23,620 53 00:02:23,620 --> 00:02:29,500 だから、あなたが印刷された何かを持っていた場合 "こんにちは、世界!"画面に、 54 00:02:29,500 --> 00:02:32,400 あなたが代わりにそれを置く場合 output.text、それに 55 00:02:32,400 --> 00:02:35,220 output.textと呼ばれるこのファイルを作成します。 56 00:02:35,220 --> 00:02:38,550 あなたがそれを開いたときと、それはよ "こんにちは、世界!"と言うそこに。 57 00:02:38,550 --> 00:02:41,410 これは、超便利です あなたがエラーのトンを持っている場合 58 00:02:41,410 --> 00:02:43,430 実際に、我々はこの1つで見るように。 59 00:02:43,430 --> 00:02:46,810 あなたは2キャレットを行う場合、それはよ エラーメッセージを印刷します。 60 00:02:46,810 --> 00:02:52,090 >> あなたが持つ問題を抱えているので、もし コンパイル、それがエラーをたくさん持っている 61 00:02:52,090 --> 00:02:56,770 あなたがしようとしてで泥沼取得している あなたのコマンドラインでスクロールするには 62 00:02:56,770 --> 00:02:59,110 すべてそれらを介して、次のことができます 単にファイルにそれらを印刷し、 63 00:02:59,110 --> 00:03:02,130 あなたがそのようにそのファイルを開く それらを介して簡単にスクロールすることができます。 64 00:03:02,130 --> 00:03:05,160 私は実際にあることを使用 私がデバッグしたたくさん 65 00:03:05,160 --> 00:03:07,970 機械学習のための私の181のpset。 66 00:03:07,970 --> 00:03:10,000 だから、後でスーパー便利です。 67 00:03:10,000 --> 00:03:18,370 あなたがプログラムを持っている場合にも便利です それは多分、ライブラリを生成している 68 00:03:18,370 --> 00:03:20,430 またはいくつかのセットを生成する 文字列の、そしてあなた 69 00:03:20,430 --> 00:03:22,846 それを見ることができるようにする必要がある それが適切に生成だ。 70 00:03:22,846 --> 00:03:23,860 71 00:03:23,860 --> 00:03:25,160 これはそれを行う方法です。 72 00:03:25,160 --> 00:03:28,280 >> ですから、ファイルにあなたをそれらを印刷した場合 より簡単に調べることができますよね? 73 00:03:28,280 --> 00:03:30,930 スクロールしようとして対 あなたのコマンドラインを介して。 74 00:03:30,930 --> 00:03:32,740 75 00:03:32,740 --> 00:03:35,820 その後一つのことに注意する そのちょうど大きな付きです 76 00:03:35,820 --> 00:03:40,090 キャレットより、あなたが書いている場合は、 すでにexists--ファイルへ 77 00:03:40,090 --> 00:03:44,990 私たちが最初にこれを実行した場合のような 時間は、私たちは、output.textためにそれを置く 78 00:03:44,990 --> 00:03:49,970 その後、我々は第二のプログラムを持っていた プログラム2としてこれを印刷していること 79 00:03:49,970 --> 00:03:54,250 そして、output.text以上やった それはそうthat--上書きされます 80 00:03:54,250 --> 00:03:56,715 で今までにあったものに上書き そもそもそのファイル。 81 00:03:56,715 --> 00:03:57,720 82 00:03:57,720 --> 00:04:00,750 >> だから、あなたが追加したい場合は、 ファイルへの、私たちはここで見るように、 83 00:04:00,750 --> 00:04:04,779 あなただけの看板よりも2よりを行う。 84 00:04:04,779 --> 00:04:05,820 そして、それはそれに追加されます。 85 00:04:05,820 --> 00:04:06,750 それはそれを上書きしません。 86 00:04:06,750 --> 00:04:09,770 ですから、複数を実行する必要がある場合 プログラムやキープの種類 87 00:04:09,770 --> 00:04:13,170 それらのすべてが何であるかを追跡 ファイル内のあなたに戻って、 88 00:04:13,170 --> 00:04:14,190 それはそれを行うための方法です。 89 00:04:14,190 --> 00:04:17,231 あなたはあなたのファイルに何があるか気にしない場合 そしてそれは、上書きが許可さだ 90 00:04:17,231 --> 00:04:19,204 あなただけのよりシングル以降を使用することができます。 91 00:04:19,204 --> 00:04:20,600 それは皆に意味があるか? 92 00:04:20,600 --> 00:04:23,205 93 00:04:23,205 --> 00:04:31,140 >> 聴衆:同様にドットが大きくハロースラッシュ 二回のような出力ドットのテキストより、 94 00:04:31,140 --> 00:04:34,030 それだけで出力のみに表示されます ドットのテキスト第二time-- 95 00:04:34,030 --> 00:04:34,810 >> SPEAKER 1:右。 96 00:04:34,810 --> 00:04:40,450 だから、基本的には完全にだろう そもそもそこにあったものが上書きされます。 97 00:04:40,450 --> 00:04:44,260 ここでは、このファイルの場合 すでにoutput.text 98 00:04:44,260 --> 00:04:48,230 お電話の何でも基本的には、存在している シングル大きいと再びその 99 00:04:48,230 --> 00:04:51,920 あなたはそれについて考えることができるよりも、 などのようなそれは、ファイルを置き換え。 100 00:04:51,920 --> 00:04:54,824 Wordを保存しているときのような あなたはとして保存しない文書や、 101 00:04:54,824 --> 00:04:57,365 そしてあなたは、同じ名前を維持し、 それは完全にit--を上書き 102 00:04:57,365 --> 00:04:58,680 これは物と同じ種類である。 103 00:04:58,680 --> 00:05:00,380 104 00:05:00,380 --> 00:05:03,550 誰でも上の任意の質問がある 単にファイルに出力? 105 00:05:03,550 --> 00:05:05,051 106 00:05:05,051 --> 00:05:05,550 恐ろしい。 107 00:05:05,550 --> 00:05:11,440 >> だから、明らかに、あなたが逆転した場合 方向矢印は、入力を行うことができます。 108 00:05:11,440 --> 00:05:13,090 109 00:05:13,090 --> 00:05:19,960 だから、あなたたちは持っていたとき シーザーやのVisioneer様 110 00:05:19,960 --> 00:05:23,195 あなたが入力何かに持っていた、 あなたがコマンドラインの引数を持っていた 111 00:05:23,195 --> 00:05:24,960 それそれ実際に入力。 112 00:05:24,960 --> 00:05:27,410 これはそれを行うための別の方法です。 113 00:05:27,410 --> 00:05:30,520 だからではなく、待っているの コマンド·プロンプトのため、 114 00:05:30,520 --> 00:05:33,800 あなたが尋ねられたときのようなあなたの シーザーかのVisioneerでメッセージ、 115 00:05:33,800 --> 00:05:36,490 テキストフ​​ァイルがあった場合 それが、あなたのメッセージを持っていた 116 00:05:36,490 --> 00:05:38,280 あなたはちょうどそれにそれを入力することができます。 117 00:05:38,280 --> 00:05:44,930 >> これは、ドットのようなものでしたので、もしシーザースラッシュ 3矢印入力テキスト未満いる 118 00:05:44,930 --> 00:05:47,240 あなたのメッセージがあること、である うまく実行されます。 119 00:05:47,240 --> 00:05:51,310 120 00:05:51,310 --> 00:05:54,020 ときに、実際にあなたのシーザープログラム ユーザからの入力を求め、 121 00:05:54,020 --> 00:05:57,360 それが既にあるため、それを持っているだろう あなたはこのファイルに入力した。 122 00:05:57,360 --> 00:05:58,830 それはちょうど別の方法です。 123 00:05:58,830 --> 00:06:02,445 output--のちょうど逆 あなたのデータのためだけで入力。 124 00:06:02,445 --> 00:06:04,570 125 00:06:04,570 --> 00:06:06,680 >> その後最後のものはパイプである。 126 00:06:06,680 --> 00:06:07,780 だから、この1のかなりクール。 127 00:06:07,780 --> 00:06:09,890 それはあなたができるため 一方の出力を行う 128 00:06:09,890 --> 00:06:13,695 としてそれをプログラムとput 別のプログラムへの入力。 129 00:06:13,695 --> 00:06:15,250 130 00:06:15,250 --> 00:06:18,630 あなたのうちのどれかかどうかは知りません 解読と共演 131 00:06:18,630 --> 00:06:20,590 そのCS50は持っているかもしれません それはあなたが与えられただろうが、 132 00:06:20,590 --> 00:06:27,380 あなたには、いくつかのサンプルを採取することができます ファイルには、あなたの暗号化にそれを入力し、 133 00:06:27,380 --> 00:06:30,350 そして、そこから入力し あなたの解読にその 134 00:06:30,350 --> 00:06:32,470 確認してくださいそれは同じ判明。 135 00:06:32,470 --> 00:06:34,050 だから、この種の3ウェイループのようなものだ。 136 00:06:34,050 --> 00:06:38,400 137 00:06:38,400 --> 00:06:39,423 それのために行く。 138 00:06:39,423 --> 00:06:41,785 >> 読者:プログラムの場合 複数の入力を持って、 139 00:06:41,785 --> 00:06:47,646 どの入力にそれを伝える方法はありませ テキストフ​​ァイル、または出力を使用するには? 140 00:06:47,646 --> 00:06:49,325 >> SPEAKER 1:これは、複数の入力を有する。 141 00:06:49,325 --> 00:06:52,190 142 00:06:52,190 --> 00:07:00,430 それはだ時にどのようなinput--を提出 初めてことの入力を求めて、それはだ 143 00:07:00,430 --> 00:07:03,240 仮定するつもりは、私が思うに、それはだ ファイル全体でパイプに行く。 144 00:07:03,240 --> 00:07:03,979 145 00:07:03,979 --> 00:07:07,145 あなたが複数の入力を持っている場合、あなたがしているので、 複数のファイルにパイピングされようとして。 146 00:07:07,145 --> 00:07:08,190 147 00:07:08,190 --> 00:07:12,390 だから、あなたがメッセージを求めている場合 あなたのコードでは3回、 148 00:07:12,390 --> 00:07:15,230 あなたはパッティングことになるだろう 三つの異なるファイルに。 149 00:07:15,230 --> 00:07:15,980 そして、それはクレイジー取得します。 150 00:07:15,980 --> 00:07:18,188 そして、あなたがする必要はありません 今のことを心配。 151 00:07:18,188 --> 00:07:19,150 しかし、それはアイデアだ。 152 00:07:19,150 --> 00:07:20,680 153 00:07:20,680 --> 00:07:26,822 >> そんなわけで、パイプは1だけが出力され このプログラムは、他への入力を使用しています。 154 00:07:26,822 --> 00:07:27,665 誰もそこに良い? 155 00:07:27,665 --> 00:07:28,565 156 00:07:28,565 --> 00:07:29,065 涼しい。 157 00:07:29,065 --> 00:07:30,170 158 00:07:30,170 --> 00:07:30,932 [OK]をクリックします。 159 00:07:30,932 --> 00:07:32,890 あなたはおそらくありません それをあまりすることができません。 160 00:07:32,890 --> 00:07:35,670 しかし、あなたは理解しておく必要があります あなたがこれを使用することができる方法。 161 00:07:35,670 --> 00:07:38,910 いくつかの場合があること あなたはそれを使用したい場合があります。 162 00:07:38,910 --> 00:07:44,590 >> だから、私は、ファイル/ O-で私はあなたがしているか知っている saying--我々はからの読み取りに慣れている 163 00:07:44,590 --> 00:07:50,500 そしてそこに私たちの画面への書き込み、 これで標準と標準出力である。 164 00:07:50,500 --> 00:07:54,370 そして、それはあなたたちがされているものだ ここで、クラスの初めからやって。 165 00:07:54,370 --> 00:07:58,220 しかし、あなたはまた、ファイルの読み書きができ、 私は/ O-でそう入力ファイルのすべてのファイルである、 166 00:07:58,220 --> 00:07:59,850 出力は、それがすべてを表している。 167 00:07:59,850 --> 00:08:00,930 168 00:08:00,930 --> 00:08:04,360 だから、これは基本的にことを意味します あなたは今、あなたのデータを格納できます。 169 00:08:04,360 --> 00:08:08,460 >> あなただけにそれを印刷するとき 画面、それは基本的には、右逝ってしまった? 170 00:08:08,460 --> 00:08:12,507 とすぐに「ハロー作るように 世界 "と実行の" Hello World " 171 00:08:12,507 --> 00:08:14,090 それは、画面に「こんにちは」を印刷します。 172 00:08:14,090 --> 00:08:16,370 しかし、あなたは本当に行うことはできません そこから、それを使って何。 173 00:08:16,370 --> 00:08:18,950 あなたがテキストで保存する場合 ファイル、突然 174 00:08:18,950 --> 00:08:22,789 あなたが許可されているこのデータを持っている 操作したり、ファイルにそれを置くために、 175 00:08:22,789 --> 00:08:24,080 以降のプログラムにそれを置く。 176 00:08:24,080 --> 00:08:26,370 177 00:08:26,370 --> 00:08:29,290 理由の一つ なぜ我々はこれを行うだけである 178 00:08:29,290 --> 00:08:31,560 後で使用するためにデータを保存する手段として。 179 00:08:31,560 --> 00:08:34,790 180 00:08:34,790 --> 00:08:37,279 >> 私はここでの手順のカップルを持っている ちょうど標準を歩いて 181 00:08:37,279 --> 00:08:39,450 I / O。ステップ1では、あなた 参照を作成する必要があります 182 00:08:39,450 --> 00:08:43,480 すべての付いたファイルへ キャップはスターファイル。 183 00:08:43,480 --> 00:08:45,740 だから、ファイルへのポインタを作成します。 184 00:08:45,740 --> 00:08:48,080 185 00:08:48,080 --> 00:08:49,650 だから、あなたはそれを開きたい。 186 00:08:49,650 --> 00:08:52,940 そして、あなたは、文字通り、言う ちょうどファイルがfopenを等しくなります。 187 00:08:52,940 --> 00:08:57,400 そして、これは返すために起こっている あなただけの開いたファイルへのポインタ。 188 00:08:57,400 --> 00:08:59,610 189 00:08:59,610 --> 00:09:01,460 私はあなたのカップルを見ました 営業時間の連中。 190 00:09:01,460 --> 00:09:07,400 >> しかし、物事の一つ remember--のポインタである 191 00:09:07,400 --> 00:09:10,409 右、いくつかのアドレスまたはnullにすることができますか? 192 00:09:10,409 --> 00:09:12,700 我々はこれまでどこのケースを持っている場合 何かが、nullを返すことができます 193 00:09:12,700 --> 00:09:14,990 私たちは何をすべきかを持っていない 私たちは今までそれを使用する前に? 194 00:09:14,990 --> 00:09:16,220 195 00:09:16,220 --> 00:09:19,000 私たちは、どうかをチェックする必要があります それがnullかどうか、だね? 196 00:09:19,000 --> 00:09:23,600 あなたのいくつかは持っていた可能性があるため、 問題どこでどのようなオブジェクト 197 00:09:23,600 --> 00:09:26,110 ブレイクアウトで返されていたNULLでした。 198 00:09:26,110 --> 00:09:28,170 あなたが実行しようとしました その上にいくつかの機能。 199 00:09:28,170 --> 00:09:29,770 そして、あなたのコンピュータサイトが障害の発生した。 200 00:09:29,770 --> 00:09:30,725 右? 201 00:09:30,725 --> 00:09:33,640 私はあなたのカップルを賭ける その問題を持っていたかもしれない。 202 00:09:33,640 --> 00:09:38,890 >> fopenを持つように、関数fopenはどちらでしょう ファイルへのポインタを返す、 203 00:09:38,890 --> 00:09:41,200 または何かがうまくいかない場合には、 それがnullを返すために起こっている。 204 00:09:41,200 --> 00:09:45,980 だから、常にチェックする必要があります それがnullを返されていないこと 205 00:09:45,980 --> 00:09:47,880 あなたが何かを実行しようとする前に。 206 00:09:47,880 --> 00:09:49,110 207 00:09:49,110 --> 00:09:51,974 これは標準的なパラダイムのようなものです あなたはここで必要になるだろうことを。 208 00:09:51,974 --> 00:09:54,390 チャンスは今までがある場合、その 何かが、nullを返す可能性 209 00:09:54,390 --> 00:09:56,590 それ確認してください あなたが進行しないの前に。 210 00:09:56,590 --> 00:09:58,911 そうでなければ、あなたが行っている 素敵なサイトの障害を取得します。 211 00:09:58,911 --> 00:10:00,410 そして、誰もそれらに対処するために好きではない。 212 00:10:00,410 --> 00:10:03,180 213 00:10:03,180 --> 00:10:06,410 >> だから私たちはここに見るように、最初の引数 ファイルへのパスだけです。 214 00:10:06,410 --> 00:10:09,380 そのファイルが存在しない場合、 それは、そのファイルを作成するために起こっている。 215 00:10:09,380 --> 00:10:10,713 そして、それは単に空白になるだろう。 216 00:10:10,713 --> 00:10:10,789 217 00:10:10,789 --> 00:10:13,080 その後、第2引数 あなたが望むモードです。 218 00:10:13,080 --> 00:10:14,610 私たちはこのファイルから読みたいですか? 219 00:10:14,610 --> 00:10:15,560 あなたはそれから書いてみませんか? 220 00:10:15,560 --> 00:10:16,476 あなたが追加したいですか? 221 00:10:16,476 --> 00:10:17,600 222 00:10:17,600 --> 00:10:20,670 だから、実際にどのような私はちょうどsaid-- ファイルが存在しない場合 223 00:10:20,670 --> 00:10:23,400 あなたがから読み取るしようとしている それは、それがエラーをスローするようになるだろう。 224 00:10:23,400 --> 00:10:26,890 ファイルがある場合のようにname--場合 file.textはまだ存在しません 225 00:10:26,890 --> 00:10:29,250 あなたが書きたい それに、それが作成されます 226 00:10:29,250 --> 00:10:33,110 あなたのためにfile.text呼ば空のファイル。 227 00:10:33,110 --> 00:10:36,612 そして、あなたが追加したい場合は、 あなたが同じことを行う必要があります。 228 00:10:36,612 --> 00:10:38,081 それは理にかなっていますか? 229 00:10:38,081 --> 00:10:40,580 あなたがから読み取るしようとしている場合は まだ存在しないファイル、 230 00:10:40,580 --> 00:10:41,590 それがエラーをスローします。 231 00:10:41,590 --> 00:10:44,340 それ以外の場合は、ファイルが作成され あなたがそれにやりたいため。 232 00:10:44,340 --> 00:10:45,970 233 00:10:45,970 --> 00:10:46,470 涼しい。 234 00:10:46,470 --> 00:10:47,510 235 00:10:47,510 --> 00:10:48,880 今、私たちは、ファイルから読み込むことができます。 236 00:10:48,880 --> 00:10:52,570 そして、これは単なる種の予定です 異なる機能を通じて 237 00:10:52,570 --> 00:10:58,980 我々は、ファイルI / Oを持っていること。この意志 今週のPSETで必要となる、 238 00:10:58,980 --> 00:11:00,505 私は記憶が正しければ。 239 00:11:00,505 --> 00:11:02,880 はい、それは絶対になります 今週のPSETに必要。 240 00:11:02,880 --> 00:11:04,260 241 00:11:04,260 --> 00:11:07,010 だから、fgetc関数は、次の文字を返します。 242 00:11:07,010 --> 00:11:08,350 243 00:11:08,350 --> 00:11:10,300 fgetsのは、単なるテキストの行を返します。 244 00:11:10,300 --> 00:11:11,790 245 00:11:11,790 --> 00:11:14,610 それは、最大何も返されます 新しい行、それが解除されます。 246 00:11:14,610 --> 00:11:15,950 247 00:11:15,950 --> 00:11:18,700 だから、関数freadは、特定を読み込み バイトや場所、それらを数 248 00:11:18,700 --> 00:11:20,700 その配列内へ 何かがあなたは可能性がある 249 00:11:20,700 --> 00:11:25,485 再size--でやってみたい 役に立つかもしれない。 250 00:11:25,485 --> 00:11:26,550 251 00:11:26,550 --> 00:11:29,290 >> どのように多くの人が読んでいる ところでPSET仕様、? 252 00:11:29,290 --> 00:11:30,980 253 00:11:30,980 --> 00:11:32,261 [OK]をクリックします。 254 00:11:32,261 --> 00:11:32,760 [聞こえない] 255 00:11:32,760 --> 00:11:35,380 256 00:11:35,380 --> 00:11:36,580 >> SPEAKER 1:OK。 257 00:11:36,580 --> 00:11:37,530 わかりました。 258 00:11:37,530 --> 00:11:41,940 それが楽しいのpsetだthat--間違いなくお読みください。 259 00:11:41,940 --> 00:11:51,320 あなたは、削除されたメモリを回復するために取得 それが動作する時に本当にエキサイティングcard--。 260 00:11:51,320 --> 00:11:54,100 しかし、間違いなく、それを読み始める。 261 00:11:54,100 --> 00:11:56,280 あなたなら、私に話をしてくる それについての質問があります。 262 00:11:56,280 --> 00:11:59,290 >> [OK]を、関数fread、私が言っていたように 特定のバイト数を読み取る。 263 00:11:59,290 --> 00:12:01,340 264 00:12:01,340 --> 00:12:03,590 それはいくつかの任意の数だ あなたが設定するつもりだという。 265 00:12:03,590 --> 00:12:05,990 266 00:12:05,990 --> 00:12:08,260 そして、ちょうど移動しFSEEK 特定の位置に移動する。 267 00:12:08,260 --> 00:12:11,150 だから、多分あなたは気にしない 次の10バイト程度。 268 00:12:11,150 --> 00:12:12,880 あなただけ先にスキップしたい。 269 00:12:12,880 --> 00:12:14,030 あなたはそれらを気にしないでください。 270 00:12:14,030 --> 00:12:16,280 あなたは、バイト11から始まる読みたい。 271 00:12:16,280 --> 00:12:18,252 fseekはあなたがそれを行うことができます。 272 00:12:18,252 --> 00:12:20,710 だから、それはあなたが選択的であることを可能にする あなたが読んでいるかについて。 273 00:12:20,710 --> 00:12:25,880 fgetc関数、fgetsの、そして関数fread読み取りので、 ファイル内の特定の場所から。 274 00:12:25,880 --> 00:12:27,260 275 00:12:27,260 --> 00:12:35,090 >> この場合は、この考える方法です 私たちのファイルであり、あなたが最初にそれを開いたときに、 276 00:12:35,090 --> 00:12:41,140 あなたは、ファイル内のこの位置を持っている それは冒頭で始まります。 277 00:12:41,140 --> 00:12:45,040 あなたが呼び出すたびに、 fgetc関数、fgetf、または関数fread、 278 00:12:45,040 --> 00:12:48,875 それはから始めるために起こっている この位置マーカー。 279 00:12:48,875 --> 00:12:51,340 280 00:12:51,340 --> 00:12:55,245 例えば、あなたがちょうど読んでもらいたいとしましょう こっちにこのメモリチャンク。 281 00:12:55,245 --> 00:12:56,300 282 00:12:56,300 --> 00:12:57,960 あなただけ呼び出すことはできません。 283 00:12:57,960 --> 00:13:02,430 あなたがこっちに模索する必要が し、そこから読み取る 284 00:13:02,430 --> 00:13:06,540 または、読み取りを取得、またはGETC あなたが望むものに応じて。 285 00:13:06,540 --> 00:13:09,310 だから、ちょうどあなたがすることができ求める メモリの一部をスキップします。 286 00:13:09,310 --> 00:13:11,590 そしてそれは唯一だ あなたは物事をスキップすることができる方法 287 00:13:11,590 --> 00:13:14,012 あなたのバッファにそれらを読まず。 288 00:13:14,012 --> 00:13:15,470 それは皆に意味があるか? 289 00:13:15,470 --> 00:13:21,110 290 00:13:21,110 --> 00:13:24,780 >> 明らかに、あります パラレルhere--たくさんの 291 00:13:24,780 --> 00:13:27,780 私たちの出力、または入力のリダイレクト、 あなたは読み取りと書き込みました。 292 00:13:27,780 --> 00:13:31,800 だから、fputcのちょうど書き込み ファイルに文字。 293 00:13:31,800 --> 00:13:33,655 fputsは、ラインを書き込みます。 294 00:13:33,655 --> 00:13:35,030 295 00:13:35,030 --> 00:13:37,420 関数fprintfは、フォーマットされた出力を印刷します。 296 00:13:37,420 --> 00:13:41,190 だから、あなたは、タブを持っている場合、 またはスペース、またはその他もろもろ。 297 00:13:41,190 --> 00:13:44,180 その後fwriteのは、いくつかを書き込みます ファイルへのバイトの配列。 298 00:13:44,180 --> 00:13:48,860 だから、これは同じ方法です fwriteはと関数freadは類似して 299 00:13:48,860 --> 00:13:57,550 opposites-- fgetsの、fputs、および その後FPUTCとfgetc--たくさん 300 00:13:57,550 --> 00:14:00,710 クレイジー、迅速な物事の。 301 00:14:00,710 --> 00:14:05,300 >> だけの種類のこのhandy--を保つ あなたは、異なる時間があるでしょう 302 00:14:05,300 --> 00:14:08,680 多分あなたはちょうどどこが欲しい 1文字ずつ。 303 00:14:08,680 --> 00:14:09,890 たぶん、あなたは全体のラインが欲しい。 304 00:14:09,890 --> 00:14:14,320 あなたの辞書pset--付き これは、2つのPsetにあり、 305 00:14:14,320 --> 00:14:19,690 私たちはあなたに全体を与える、と信じて テキスト形式で辞書 306 00:14:19,690 --> 00:14:22,252 そのすべての単語を持って 行で区切ら。 307 00:14:22,252 --> 00:14:24,210 だから、あなたが読みたい場合は、 1ワードずつで、 308 00:14:24,210 --> 00:14:31,769 あなたが読んでいる場合は、何を使用する場合があります それらはすべて、新しい行で分離している 309 00:14:31,769 --> 00:14:33,310 そしてあなただけ一度に一つの単語をしたいですか? 310 00:14:33,310 --> 00:14:35,320 311 00:14:35,320 --> 00:14:36,040 >> 読者:fgetsの 312 00:14:36,040 --> 00:14:36,748 >> SPEAKER 1:右。 313 00:14:36,748 --> 00:14:39,960 Fgets--それは返すため 何でも1行になります。 314 00:14:39,960 --> 00:14:42,750 そして、すべての単語がある場合、その 自身のライン、我々はfgetsを使用することができます。 315 00:14:42,750 --> 00:14:44,511 316 00:14:44,511 --> 00:14:45,010 涼しい。 317 00:14:45,010 --> 00:14:47,290 意味をなすことなく、すべての人? 318 00:14:47,290 --> 00:14:48,020 クール? 319 00:14:48,020 --> 00:14:50,020 ええ、私たちに取得するつもりだ ポインタを持つ楽しみの一部 320 00:14:50,020 --> 00:14:51,728 非常にすぐに、どこに いくつかの計算を行うために取得。 321 00:14:51,728 --> 00:14:52,776 そして、それは素晴らしいことでしょう。 322 00:14:52,776 --> 00:14:55,690 323 00:14:55,690 --> 00:14:57,740 >> 最後には、あなたのファイルを閉じstep--。 324 00:14:57,740 --> 00:15:01,090 ここでたくさんのことで、 私たちのパラダイムの1 325 00:15:01,090 --> 00:15:03,550 それが返すことができる場合にはある NULL、NULLをチェックする。 326 00:15:03,550 --> 00:15:06,160 あなたが何かを開いた場合、 あなたはより良いそれを閉じたいと思います。 327 00:15:06,160 --> 00:15:10,419 あなたが整うまでOK、そう、あなたは行われていない あなたがそれを閉じていない限り行わ。 328 00:15:10,419 --> 00:15:12,585 それは終わっていないん種のように 太った女性が歌うまでは。 329 00:15:12,585 --> 00:15:14,130 それはあなたのファイルをクローズするようなものだ。 330 00:15:14,130 --> 00:15:16,860 331 00:15:16,860 --> 00:15:19,190 それだけで、ここに言うように 常に、繰り返しに 332 00:15:19,190 --> 00:15:21,750 あなたがしている前に、あなたのファイルを開く 読み取りまたはそれに書き込む。 333 00:15:21,750 --> 00:15:24,450 あなたがそれを開いた場合には、常にそれを閉じ。 334 00:15:24,450 --> 00:15:25,460 すべての権利? 335 00:15:25,460 --> 00:15:25,960 涼しい。 336 00:15:25,960 --> 00:15:26,835 >> だから、ここでの例です。 337 00:15:26,835 --> 00:15:29,250 338 00:15:29,250 --> 00:15:34,330 だからかどうかはわからないtiny-- 男は非常によくそれを見ることができます。 339 00:15:34,330 --> 00:15:36,805 場合にのみ、我々は増加する可能性が 明るさは何とか。 340 00:15:36,805 --> 00:15:40,430 341 00:15:40,430 --> 00:15:45,030 私ができるなら、私は実際にこれをやってみましょう。 342 00:15:45,030 --> 00:15:48,020 343 00:15:48,020 --> 00:15:51,470 [OK]を、君たちは本当にできない あなたは、そのすべてですることができます参照してください? 344 00:15:51,470 --> 00:15:52,905 [OK]を、私たちはその後、これをやろうとしている。 345 00:15:52,905 --> 00:16:35,094 346 00:16:35,094 --> 00:16:35,594 [聞こえない] 347 00:16:35,594 --> 00:16:56,670 348 00:16:56,670 --> 00:16:58,605 >> 私はこれが見てはるかに優れて想定しています。 349 00:16:58,605 --> 00:17:17,330 350 00:17:17,330 --> 00:17:19,455 誰もがどこで見ることができ、私の マウスが質問です行きました? 351 00:17:19,455 --> 00:17:22,837 ああ、そこは苦労何is--! 352 00:17:22,837 --> 00:17:48,910 353 00:17:48,910 --> 00:17:49,520 >> [OK]をクリックします。 354 00:17:49,520 --> 00:17:53,845 基本的に、あなたたちは種類を持っている必要があります これが何をしているかのアイデアの。 355 00:17:53,845 --> 00:17:56,740 356 00:17:56,740 --> 00:17:57,600 これは完璧ではあり​​ません。 357 00:17:57,600 --> 00:17:58,851 358 00:17:58,851 --> 00:18:02,425 費やすよりも、私はむしろそれを説明するだろう より多くの時間を適切にフォーマットしようとしている。 359 00:18:02,425 --> 00:18:03,610 360 00:18:03,610 --> 00:18:07,280 基本的に、あなたがここに見るように、 我々は、ファイルのオープンで始まる。 361 00:18:07,280 --> 00:18:09,620 そして、我々はいくつかを持っている 我々は、データベース·ファイル 362 00:18:09,620 --> 00:18:12,300 それを開くと、それが私たちの学生だと言う。 363 00:18:12,300 --> 00:18:14,020 そして、我々はそれに書き込むつもりだ。 364 00:18:14,020 --> 00:18:15,060 365 00:18:15,060 --> 00:18:17,720 だからもちろん、nullを返します。 366 00:18:17,720 --> 00:18:19,650 だから我々はnullをチェックする必要があります。 367 00:18:19,650 --> 00:18:22,930 そしてそれはではない場合 ヌル、我々は通過します。 368 00:18:22,930 --> 00:18:25,660 ご覧のように、私たちはしている ここをループ。 369 00:18:25,660 --> 00:18:26,960 学生があります。 370 00:18:26,960 --> 00:18:30,520 学生は3のように定義ハッシュです。 371 00:18:30,520 --> 00:18:34,060 そして私たちがやっていることは、私たちされている 右、ファイルへの印刷? 372 00:18:34,060 --> 00:18:36,975 だから何我々は、ファイルにプリントアウトされている? 373 00:18:36,975 --> 00:18:47,040 374 00:18:47,040 --> 00:18:48,906 >> 読者:得点 それが配列にある? 375 00:18:48,906 --> 00:18:49,680 >> SPEAKER 1:うん。 376 00:18:49,680 --> 00:18:50,980 内にあるスコア 正確にarray--。 377 00:18:50,980 --> 00:18:53,050 だから我々はこれを開いている データベースファイル、どの 378 00:18:53,050 --> 00:18:56,040 私はいくつかの並べ替えであると仮定し グレードデータベース。 379 00:18:56,040 --> 00:19:01,100 そして、私たちはちょうどプリントアウトしている そのファイルへの各学生のスコア。 380 00:19:01,100 --> 00:19:02,140 クール? 381 00:19:02,140 --> 00:19:02,640 グッド。 382 00:19:02,640 --> 00:19:03,811 383 00:19:03,811 --> 00:19:04,310 恐ろしい。 384 00:19:04,310 --> 00:19:05,100 [OK]をクリックします。 385 00:19:05,100 --> 00:19:06,950 to--を取り戻すましょう 386 00:19:06,950 --> 00:19:08,646 >> 読者:私は簡単な質問を持っている。 387 00:19:08,646 --> 00:19:11,570 printfのはループではないですか? 388 00:19:11,570 --> 00:19:12,870 それはあたかもループの中でですか? 389 00:19:12,870 --> 00:19:14,370 SPEAKER 1:いいえ、それはのためにループ内でです。 390 00:19:14,370 --> 00:19:16,150 391 00:19:16,150 --> 00:19:18,810 私はここまで非常によく私のマウスを見ることができない。 392 00:19:18,810 --> 00:19:21,359 だから私はに苦労して 形式が正しく。 393 00:19:21,359 --> 00:19:22,525 このブラケットは消えなければならない。 394 00:19:22,525 --> 00:19:23,610 395 00:19:23,610 --> 00:19:25,130 ここはダウンしている必要があります。 396 00:19:25,130 --> 00:19:26,605 これは、あなたのためのループに何があるかである。 397 00:19:26,605 --> 00:20:10,680 398 00:20:10,680 --> 00:20:11,180 そこに。 399 00:20:11,180 --> 00:20:12,160 今、それはかなりです。 400 00:20:12,160 --> 00:20:16,720 だから、それはそれは除いてbe--べきかだ 私は却下、その最後のブラケットについて。 401 00:20:16,720 --> 00:20:17,220 [OK]をクリックします。 402 00:20:17,220 --> 00:20:19,491 それは皆に意味があるか? 403 00:20:19,491 --> 00:20:19,990 [OK]をクリックします。 404 00:20:19,990 --> 00:20:23,750 私たちは、上に移動するつもりだ 次の事にthen-- 405 00:20:23,750 --> 00:20:26,180 これ、実際に、あなたが行っている コー​​ドを確認する必要があります。 406 00:20:26,180 --> 00:20:28,370 だから私はちょうどに行くよ その上で、今コピーします。 407 00:20:28,370 --> 00:20:31,500 408 00:20:31,500 --> 00:20:32,000 [OK]をクリックします。 409 00:20:32,000 --> 00:20:35,110 だから私はあなたたちにこのコードを表示するつもりです。 410 00:20:35,110 --> 00:20:38,240 と私はあなたがしようとする姿たい それが行うことになっているかを。 411 00:20:38,240 --> 00:20:49,740 412 00:20:49,740 --> 00:20:52,480 >> だから分程度かかりthat--与え。 413 00:20:52,480 --> 00:20:54,440 試してみて、ここで何が起こっているかを把握。 414 00:20:54,440 --> 00:21:58,840 415 00:21:58,840 --> 00:21:59,570 >> 任意のアイデア? 416 00:21:59,570 --> 00:22:08,180 417 00:22:08,180 --> 00:22:12,470 >> 我々は、少なくとも二つがあることがわかっている コマンドラインの引数は、右? 418 00:22:12,470 --> 00:22:16,270 私は、のいずれかがあることを行っていると仮定 ある私たちのプログラムの[聞き取れない]という 419 00:22:16,270 --> 00:22:17,530 その後何か他のもの。 420 00:22:17,530 --> 00:22:19,980 [聞こえない]が小さければ理由 2よりも、我々は彼らに叫ぶ。 421 00:22:19,980 --> 00:22:21,140 右? 422 00:22:21,140 --> 00:22:25,300 と使用から、それは次のようになります それは、ファイルのいくつかの並べ替えになるだろう。 423 00:22:25,300 --> 00:22:26,260 私たちは皆、それに同意する? 424 00:22:26,260 --> 00:22:29,110 425 00:22:29,110 --> 00:22:31,570 だから今、ループが何をやっている? 426 00:22:31,570 --> 00:22:32,570 それは何を介して起こっているの? 427 00:22:32,570 --> 00:22:35,000 428 00:22:35,000 --> 00:22:36,449 >> 読者:すべてのファイル。 429 00:22:36,449 --> 00:22:37,240 SPEAKER 1:その通り。 430 00:22:37,240 --> 00:22:39,650 これは、すべてを通して起こっている 私たちはそこに入力をしたファイル。 431 00:22:39,650 --> 00:22:40,720 432 00:22:40,720 --> 00:22:46,040 だから、それぞれのファイルのために、それはだ そこにいくつかの文字列を開く。 433 00:22:46,040 --> 00:22:47,560 それは、そのファイルを開くだ。 434 00:22:47,560 --> 00:22:48,060 右? 435 00:22:48,060 --> 00:22:49,140 436 00:22:49,140 --> 00:22:52,380 そして、それはそれから読んでいる。 437 00:22:52,380 --> 00:22:53,420 438 00:22:53,420 --> 00:22:55,540 それがnullだ場合はもちろん、チェックする。 439 00:22:55,540 --> 00:22:57,220 その後、印刷だ。 440 00:22:57,220 --> 00:23:01,460 それがnullなら、それはちょうど私達に言っています ことをそれが存在しているファイルではありません。 441 00:23:01,460 --> 00:23:04,290 で、覚えているので、 私たちのファイルが存在している必要がありますお読みください。 442 00:23:04,290 --> 00:23:04,810 右? 443 00:23:04,810 --> 00:23:06,870 書き込みとして追加し、 あなたはそれで逃げることができます。 444 00:23:06,870 --> 00:23:08,970 しかし、読み取りで、私たちのファイルが存在している必要があります。 445 00:23:08,970 --> 00:23:10,430 446 00:23:10,430 --> 00:23:13,330 >> その後、それが存在する場合、 私たちはここで何してるの? 447 00:23:13,330 --> 00:23:14,810 448 00:23:14,810 --> 00:23:15,780 ちょうどここから始めましょう。 449 00:23:15,780 --> 00:23:18,815 この最初の文字do--これは何。 450 00:23:18,815 --> 00:23:20,960 451 00:23:20,960 --> 00:23:21,790 それは何をしますか? 452 00:23:21,790 --> 00:23:24,100 彼は右の1文字を取得? 453 00:23:24,100 --> 00:23:25,400 だから、これは何をしているのですか? 454 00:23:25,400 --> 00:23:26,775 これは、最初の文字を得ている。 455 00:23:26,775 --> 00:23:28,860 456 00:23:28,860 --> 00:23:30,200 誰もが、EOFを知っていますか? 457 00:23:30,200 --> 00:23:31,170 >> 聴衆:ファイルの終わり? 458 00:23:31,170 --> 00:23:32,680 >> SPEAKER 1:正確にfile--の終わり。 459 00:23:32,680 --> 00:23:35,310 だから、通過するために起こっている ファイル全体、右? 460 00:23:35,310 --> 00:23:36,710 461 00:23:36,710 --> 00:23:40,780 そして、それはによって更新するだろう 後続のすべての文字を取得する。 462 00:23:40,780 --> 00:23:41,565 右? 463 00:23:41,565 --> 00:23:43,636 そして、それは何をやっている? 464 00:23:43,636 --> 00:23:44,760 読者:それを置くin-- 465 00:23:44,760 --> 00:23:46,741 466 00:23:46,741 --> 00:23:49,170 >> SPEAKER 1:PUTCHARプリント あなたのスクリーンセーバーに。 467 00:23:49,170 --> 00:23:50,867 468 00:23:50,867 --> 00:23:51,950 [聞こえない]の文字。 469 00:23:51,950 --> 00:23:54,300 その後ときに[聞き取れない] これは、ファイルを閉じます。 470 00:23:54,300 --> 00:23:57,370 >> 読者:あなたは[を必要としないのですか?他に? ?] 471 00:23:57,370 --> 00:23:59,005 >> SPEAKER 1:必ずしもそうではありません。 472 00:23:59,005 --> 00:24:01,480 私が意味する、それは一種の、この中で暗示だ。 473 00:24:01,480 --> 00:24:06,780 これは長いように、しかし、返すので この投稿をキャッチしないように、あなたはいいですよ。 474 00:24:06,780 --> 00:24:07,940 475 00:24:07,940 --> 00:24:10,250 私はそれはおそらく良いことだ意味 他を行うために練習します。 476 00:24:10,250 --> 00:24:15,755 しかし、それ以外は常にではない 必要に応じて、特に 477 00:24:15,755 --> 00:24:17,610 あなたが何かを持っている場合 リターン、のようなもの 478 00:24:17,610 --> 00:24:20,640 この場合には、それがキャッチした場合ことを意味します それは、あなたのプログラムは終了するだろう 479 00:24:20,640 --> 00:24:21,850 そしてそれはこれに得ることは決してないだろう。 480 00:24:21,850 --> 00:24:23,030 481 00:24:23,030 --> 00:24:29,190 それはあなたがしている場合のためにさらに重要 必ずしも何かを返していません。 482 00:24:29,190 --> 00:24:31,370 これがなかったらので、 何かを返す、 483 00:24:31,370 --> 00:24:34,430 それがもしこれが真実であったことを意味するであろう、 この残りの部分は、まだ実行されます。 484 00:24:34,430 --> 00:24:36,138 その場合には、あなた 偽したいんだろう。 485 00:24:36,138 --> 00:24:38,240 それは返却だ場合、および プログラムのエンディング、 486 00:24:38,240 --> 00:24:41,960 他には、すべての必要はありません 文脈に応じて時間。 487 00:24:41,960 --> 00:24:43,084 488 00:24:43,084 --> 00:24:44,375 ヤコブは、あなたが疑問を持っていたのですか? 489 00:24:44,375 --> 00:24:46,100 聴衆:うん。 490 00:24:46,100 --> 00:24:49,300 だから、fgetc関数は、次の文字を取得していますか? 491 00:24:49,300 --> 00:24:50,734 キャラクターはどのように増やしていますか? 492 00:24:50,734 --> 00:24:51,400 SPEAKER 1:うん。 493 00:24:51,400 --> 00:24:52,774 だから、fgetc関数は、次の文字を取得します。 494 00:24:52,774 --> 00:24:54,140 495 00:24:54,140 --> 00:24:56,866 あなたは、ある意味で、C ++のように考えることができます。 496 00:24:56,866 --> 00:24:58,350 >> 聴衆:だからEOFは何でしたか? 497 00:24:58,350 --> 00:25:00,877 >> SPEAKER 1:EOFは、ファイルの終わりです。 498 00:25:00,877 --> 00:25:03,960 それはちょうどあなたが知ることができますマーカーです あなたのファイルの最後にいること。 499 00:25:03,960 --> 00:25:06,742 だから、これは印刷するために起こっている あなたの標準出力へ。 500 00:25:06,742 --> 00:25:08,950 そしてそれは閉じるために起こっている に行うのファイル。 501 00:25:08,950 --> 00:25:10,700 その後ましょへ行こう 次のファイルは、右? 502 00:25:10,700 --> 00:25:12,660 だから、全体的に、このプログラムは何をするのでしょうか? 503 00:25:12,660 --> 00:25:15,402 504 00:25:15,402 --> 00:25:16,090 >> [聞こえない] 505 00:25:16,090 --> 00:25:16,900 >> SPEAKER 1:うん。 506 00:25:16,900 --> 00:25:18,770 それはちょうどそこにすべてのものを出力します。 507 00:25:18,770 --> 00:25:23,270 だから、あなたたちは今までのCATを使用した場合 いくつかのfile--のその後名前 508 00:25:23,270 --> 00:25:26,240 あなたのうちのどれかが持っているかどうかは知りません 今までお使いの端末にそれを行って。 509 00:25:26,240 --> 00:25:29,630 しかし、あなたが今まで使用している場合 コマンドCAT-- C-A-T-- 510 00:25:29,630 --> 00:25:31,880 その後どのようなファイル あなたはそれを持っているthere-- 511 00:25:31,880 --> 00:25:37,260 これ、あなたの端末にそれをプリントアウトする いくつかのスーパー便利です。 512 00:25:37,260 --> 00:25:38,746 私はそれをたくさん使用しています。 513 00:25:38,746 --> 00:25:40,120 それは皆に意味があるか? 514 00:25:40,120 --> 00:25:41,480 515 00:25:41,480 --> 00:25:42,100 クール? 516 00:25:42,100 --> 00:25:46,530 >> [OK]をので、あなたのタスクのいずれかによってnow-- 自分自身や周りの人々とのyou-- 517 00:25:46,530 --> 00:25:54,930 単純なプログラムを書くことである それはただの "Hello、World!"という書きます 518 00:25:54,930 --> 00:25:56,255 ファイルへの出。 519 00:25:56,255 --> 00:26:00,215 >> [聞こえない] 520 00:26:00,215 --> 00:26:56,210 521 00:26:56,210 --> 00:26:57,040 >> [聞こえない] 522 00:26:57,040 --> 00:26:59,248 >> SPEAKER 1:私はのようだった、でした 私はそのひどく先週のですか? 523 00:26:59,248 --> 00:27:00,201 524 00:27:00,201 --> 00:27:01,492 私はそれが悪かったとは思わなかった。 525 00:27:01,492 --> 00:27:02,479 526 00:27:02,479 --> 00:27:03,520 私はあなたがすべてここにしてくれてうれしい。 527 00:27:03,520 --> 00:27:04,655 それは本当に私を幸せにする。 528 00:27:04,655 --> 00:27:07,565 529 00:27:07,565 --> 00:27:10,160 私は単純な楽しみの女の子です。 530 00:27:10,160 --> 00:27:11,688 私のセクションでは、出席したとき、私はちょうど好き。 531 00:27:11,688 --> 00:27:13,830 532 00:27:13,830 --> 00:27:18,270 だから、僕はこれがために始めた取得しています 君たちは、私たちは一緒にコーディングできるようにします。 533 00:27:18,270 --> 00:27:22,290 私は上の誰を入れて好きではありません あなたがなりたい場合を除きスポット。 534 00:27:22,290 --> 00:27:26,486 535 00:27:26,486 --> 00:27:30,086 >> 聴衆:クイズのために、やる 我々はプログラムを書く必要がありますか? 536 00:27:30,086 --> 00:27:33,260 >> SPEAKER 1:あなたが求められる場合があります 手で簡単なプログラムを書きます。 537 00:27:33,260 --> 00:27:35,940 538 00:27:35,940 --> 00:27:36,590 うん。 539 00:27:36,590 --> 00:27:38,510 >> 聴衆:クイズ、右、来週のですか? 540 00:27:38,510 --> 00:27:40,108 >> SPEAKER 1:クイズは来週の水曜日です。 541 00:27:40,108 --> 00:27:40,855 542 00:27:40,855 --> 00:27:43,730 それは素敵な[がありますことを意味? CSE?] その後パーティーをグレーディング、どの 543 00:27:43,730 --> 00:27:50,390 あなたがあなたのスコアを得るでしょう意味 バック何時night--こと? 544 00:27:50,390 --> 00:27:50,890 誰が知っている? 545 00:27:50,890 --> 00:27:51,973 しかし、それはその夜になります。 546 00:27:51,973 --> 00:28:02,020 547 00:28:02,020 --> 00:28:02,855 >> わかりました。 548 00:28:02,855 --> 00:28:04,250 どのように我々はこれを開始したいですか? 549 00:28:04,250 --> 00:28:07,964 550 00:28:07,964 --> 00:28:09,630 私はあなたにこれでhint--開始を与えるでしょう。 551 00:28:09,630 --> 00:28:11,455 >> 読者:あなたがファイルを開く必要があります。 552 00:28:11,455 --> 00:28:12,250 >> SPEAKER 1:うん。 553 00:28:12,250 --> 00:28:14,060 だから何あなたはこれを呼びたいのですか? 554 00:28:14,060 --> 00:28:16,150 あなただけの "ファイル"と呼びたいですか? 555 00:28:16,150 --> 00:28:17,480 のは、それが簡単に作ってみましょう。 556 00:28:17,480 --> 00:28:26,752 だから私たちの何fopen-- 出力テストは、になるだろう? 557 00:28:26,752 --> 00:28:36,130 「こんにちは。」それを呼び出す 558 00:28:36,130 --> 00:28:37,810 そして、我々のモードは何ですか? 559 00:28:37,810 --> 00:28:39,764 560 00:28:39,764 --> 00:28:41,055 我々は、このファイルに何をしているのか? 561 00:28:41,055 --> 00:28:42,676 562 00:28:42,676 --> 00:28:43,500 >> 聴衆:読んでください。 563 00:28:43,500 --> 00:28:44,401 564 00:28:44,401 --> 00:28:44,900 ライティング。 565 00:28:44,900 --> 00:28:46,191 SPEAKER 1:我々はそれに書いている。 566 00:28:46,191 --> 00:28:47,360 567 00:28:47,360 --> 00:28:47,860 ラブリー。 568 00:28:47,860 --> 00:28:50,330 569 00:28:50,330 --> 00:28:52,860 [OK]を、私たちは今、このファイルを持っている。 570 00:28:52,860 --> 00:28:54,920 571 00:28:54,920 --> 00:28:56,212 私たちは何をする必要がありますか? 572 00:28:56,212 --> 00:28:57,420 読者:それがnullだかどうかを確認してください。 573 00:28:57,420 --> 00:28:59,820 SPEAKER 1:それは正確にnull--だかどうかを確認してください。 574 00:28:59,820 --> 00:29:01,980 それは私が聞きたいものだ。 575 00:29:01,980 --> 00:29:05,930 つまり、特に、自動でなければなりません この時点からほとんど。 576 00:29:05,930 --> 00:29:07,530 577 00:29:07,530 --> 00:29:10,950 あなたはおそらく、あなたをセグメンテーションフォルト起動した場合 どこかヌルをチェックしませんでした。 578 00:29:10,950 --> 00:29:12,480 10人のうち9回、それだ あなたのエラーになるだろう。 579 00:29:12,480 --> 00:29:15,400 だから、あなただけで得ることができれば それがnullだ場合には、習慣、必ず確認し、 580 00:29:15,400 --> 00:29:18,150 あなたの人生は、になるだろう 素敵easy--または容易になります。 581 00:29:18,150 --> 00:29:19,480 >> だから、それはヌルだかどうかを確認します。 582 00:29:19,480 --> 00:29:21,200 583 00:29:21,200 --> 00:29:24,820 だから、それはnullではない場合、その ビッグバンに等しいものです 584 00:29:24,820 --> 00:29:26,784 それが有効だnull--ませんmeans--。 585 00:29:26,784 --> 00:29:27,700 私たちは何をすべきかをしたいですか? 586 00:29:27,700 --> 00:29:29,750 587 00:29:29,750 --> 00:29:31,570 私達はちょうど印刷したい そのファイルへの、右? 588 00:29:31,570 --> 00:29:32,923 それでは、私たちは使用するつもりですか? 589 00:29:32,923 --> 00:29:34,092 >> 読者:fprintfの 590 00:29:34,092 --> 00:29:36,800 >> SPEAKER 1:素敵Fprintf--。 591 00:29:36,800 --> 00:29:38,150 592 00:29:38,150 --> 00:29:44,000 とfprintfのは2 arguments--場所をとり それは行くと私たちが印刷されたいだ。 593 00:29:44,000 --> 00:29:45,820 だから、最初のものは何ですか? 594 00:29:45,820 --> 00:29:46,570 それはどこに行くのですか? 595 00:29:46,570 --> 00:29:47,490 >> 聴衆:ファイル。 596 00:29:47,490 --> 00:29:48,785 >> SPEAKER 1:それはファイルになるだろう。 597 00:29:48,785 --> 00:29:49,784 598 00:29:49,784 --> 00:29:50,950 そして、我々は印刷された何をしたいですか? 599 00:29:50,950 --> 00:29:52,900 600 00:29:52,900 --> 00:29:58,065 "こんにちは、世界!" 601 00:29:58,065 --> 00:29:58,565 わかりました。 602 00:29:58,565 --> 00:30:03,670 我々は最後thing--を持っている ここにもう一つの大きなパラダイム。 603 00:30:03,670 --> 00:30:04,479 604 00:30:04,479 --> 00:30:05,145 聴衆:閉じる。 605 00:30:05,145 --> 00:30:05,853 SPEAKER 1:閉じる。 606 00:30:05,853 --> 00:30:09,990 607 00:30:09,990 --> 00:30:10,540 そこに行きます。 608 00:30:10,540 --> 00:30:13,384 >> 読者:これが起こっている ファイルがnullの場合はどうなりますか? 609 00:30:13,384 --> 00:30:15,050 SPEAKER 1:それがnullでない場合は、[いいえ、これは。 610 00:30:15,050 --> 00:30:16,881 聴衆:ああ、もしそれがnot-- OKです。 611 00:30:16,881 --> 00:30:21,728 612 00:30:21,728 --> 00:30:25,410 その後は、fopenおよび用 中に入る二つの引数、 613 00:30:25,410 --> 00:30:27,655 最初の引数は再び何を意味するのでしょうか? 614 00:30:27,655 --> 00:30:30,392 >> SPEAKER 1:引数がある 単にファイル名様 615 00:30:30,392 --> 00:30:31,350 あなたがに行きたいという。 616 00:30:31,350 --> 00:30:36,020 この実行後だから、あなたはでしょう 「ハロー」と呼ばれるいくつかのファイルを持っている 617 00:30:36,020 --> 00:30:38,320 それは、その中に "Hello、World"を持っていた。 618 00:30:38,320 --> 00:30:38,820 それだけだ。 619 00:30:38,820 --> 00:30:39,500 名前だけ。 620 00:30:39,500 --> 00:30:42,685 621 00:30:42,685 --> 00:30:48,650 >> 読者:そして、それは書いているので、 ファイルがすでに存在する必要はありません。 622 00:30:48,650 --> 00:30:49,675 あなたが言っていることですか? 623 00:30:49,675 --> 00:30:50,410 >> SPEAKER 1:右。 624 00:30:50,410 --> 00:30:50,910 正確に。 625 00:30:50,910 --> 00:30:53,110 626 00:30:53,110 --> 00:30:55,839 ファイルとして「こんにちは」の場合 それはだ、まだ存在していない 627 00:30:55,839 --> 00:30:58,380 というファイルを作成しよう 「こんにちは、あなたのためにそれに書き込む。 628 00:30:58,380 --> 00:30:59,631 629 00:30:59,631 --> 00:31:03,610 >> 読者:あなたが言っている ファイルに書いたプログラム、 630 00:31:03,610 --> 00:31:08,075 なぜあなたは書いて "ファイル"の代わりにない ファイルの名前とfprintf-- 631 00:31:08,075 --> 00:31:13,600 >> SPEAKER 1:この場合、我々は持っているので すべてcaps--スターでその大FILE--、 632 00:31:13,600 --> 00:31:14,260 ファイル。 633 00:31:14,260 --> 00:31:17,370 だから、ファイルへのポインタだ あなたが話していること。 634 00:31:17,370 --> 00:31:19,930 これがその方法です 我々はそれを参照してください。 635 00:31:19,930 --> 00:31:24,850 この場合はそう、あなた file-- AHAと考えることができ、 636 00:31:24,850 --> 00:31:31,271 我々はここでthis--ファイルを使用することができます 「こんにちは」のオープニングを指し、 637 00:31:31,271 --> 00:31:32,145 それは書くせる。 638 00:31:32,145 --> 00:31:34,728 >> 聴衆:私たちは "こんにちは"置いてもらえません 代わりに[?ちょうど?] Fファイルの? 639 00:31:34,728 --> 00:31:40,160 SPEAKER 1:いいえ、なぜなら「こんにちは」 オープンかつ書き込み可能である必要があります。 640 00:31:40,160 --> 00:31:41,820 641 00:31:41,820 --> 00:31:45,980 ここにファイルすることに似ている [OK]を言う指定子は、我々 642 00:31:45,980 --> 00:31:49,190 このfile-- hello--を持っている 私たちが見ていること。 643 00:31:49,190 --> 00:31:50,680 それが開かれている。 644 00:31:50,680 --> 00:31:52,140 そして、我々はそれに書き込むしようとしている。 645 00:31:52,140 --> 00:31:55,130 あなただけの「こんにちは」を使用する場合、 それはその中にカプセル化される。 646 00:31:55,130 --> 00:31:56,846 だから、フリークアウトになるだろう。 647 00:31:56,846 --> 00:31:58,590 648 00:31:58,590 --> 00:32:00,300 私が意味する、あなたはそれを名付けたかもしれない。 649 00:32:00,300 --> 00:32:03,960 あなたは、ファイルを行っている可能性が 星は、「こんにちは」、すなわちに等しい。 650 00:32:03,960 --> 00:32:07,840 しかし、全体のポイントはあなたということです 順番にファイルスターポインタを必要とする 651 00:32:07,840 --> 00:32:09,281 これらの機能を使用できるようにする。 652 00:32:09,281 --> 00:32:11,280 読者:あなたが発音する ファイル、スター、ファイル、「こんにちは」 653 00:32:11,280 --> 00:32:13,113 またはあなたが入れてありますか ファイルのスター、それによってファイル? 654 00:32:13,113 --> 00:32:16,330 SPEAKER 1:あなたができた 「こんにちは。」、ファイル、スターを行う 655 00:32:16,330 --> 00:32:19,790 あなたはこれを変更することができます どんな名前あなたが欲しい。 656 00:32:19,790 --> 00:32:22,114 それは完全に任意です その名前は何ですか。 657 00:32:22,114 --> 00:32:23,179 658 00:32:23,179 --> 00:32:24,220 あなたはそれでも名前を付けることができます。 659 00:32:24,220 --> 00:32:25,501 660 00:32:25,501 --> 00:32:28,020 あなたが望むなら、スパゲティを飛ぶという名前を付けます。 661 00:32:28,020 --> 00:32:29,690 >> 読者:用の引用符で「w」は何ですか? 662 00:32:29,690 --> 00:32:31,540 >> SPEAKER 1:「W」は単なるモードです。 663 00:32:31,540 --> 00:32:33,170 だから我々は、このファイルに書いている。 664 00:32:33,170 --> 00:32:34,410 665 00:32:34,410 --> 00:32:35,320 みんな良い? 666 00:32:35,320 --> 00:32:36,227 クリア? 667 00:32:36,227 --> 00:32:36,981 はい。 668 00:32:36,981 --> 00:32:40,365 >> 読者:だから、これを書いて ファイル、我々は、そのファイルを見つけるのですか? 669 00:32:40,365 --> 00:32:43,820 >> SPEAKER 1:それは同じことになるでしょう あなたが現在いるディレクトリ。 670 00:32:43,820 --> 00:32:45,650 671 00:32:45,650 --> 00:32:48,880 あなたはPSET 3にいる場合と あなたのpset内で、これを実行する 672 00:32:48,880 --> 00:32:52,600 3フォルダがあることを行っている と呼ばれるこのファイルは「こんにちは。」 673 00:32:52,600 --> 00:32:53,160 クール? 674 00:32:53,160 --> 00:32:53,757 みんな良い? 675 00:32:53,757 --> 00:32:55,840 あなたはすべてしているような気がします 偉大である、それを取得する。 676 00:32:55,840 --> 00:32:57,290 677 00:32:57,290 --> 00:32:57,790 [OK]をクリックします。 678 00:32:57,790 --> 00:33:05,960 だから、戻って私のスライドshow--へ 物事が働くとき、私は大好きです。 679 00:33:05,960 --> 00:33:08,674 [OK]を、あなたたちは興奮してpointers--ていますか? 680 00:33:08,674 --> 00:33:09,465 ポインタは素晴らしいです。 681 00:33:09,465 --> 00:33:11,581 682 00:33:11,581 --> 00:33:13,580 彼らは少しを取る あなたの頭の周りをラップする。 683 00:33:13,580 --> 00:33:15,288 これは私の2年目 教えポインタ。 684 00:33:15,288 --> 00:33:16,850 と私は最終的にそれを得たと思う。 685 00:33:16,850 --> 00:33:18,650 あなたは闘争のであれば、それはOKです。 686 00:33:18,650 --> 00:33:19,940 687 00:33:19,940 --> 00:33:24,070 私が前に言ったように、絵を描く CSで物事に多くのことができます、 688 00:33:24,070 --> 00:33:27,400 私は人々が傾向があると思うと同じくらい ああ、私たちはコンピュータの前にいると思うように。 689 00:33:27,400 --> 00:33:28,399 私達はちょうどコードすべきである。 690 00:33:28,399 --> 00:33:30,190 絵を描くNo-- 本当にあなたを助けるでしょう。 691 00:33:30,190 --> 00:33:32,773 と私は本当にすることをお勧めします あなたの幼稚園児側へタップ 692 00:33:32,773 --> 00:33:35,010 とクレヨンを引き出す またはマーカーとドロー。 693 00:33:35,010 --> 00:33:36,110 それはあなたを助けるため。 694 00:33:36,110 --> 00:33:39,380 そして、あなたはオフィスの時間で私を見た場合、私は 紙のスタック持ち歩いされます 695 00:33:39,380 --> 00:33:41,580 ペンは物事を引き出すと。 696 00:33:41,580 --> 00:33:44,370 >> だから、特に付き 絵を描くpointers--。 697 00:33:44,370 --> 00:33:47,970 そして、私たちは実際にするつもりだと確信している ここにもいくつかの写真を描くこと。 698 00:33:47,970 --> 00:33:51,270 >> だから、君たちは、すべて、Binkyを見守った このクールなクレイメーションの事。 699 00:33:51,270 --> 00:33:54,720 そして、我々はそれが時本当に面白いと思う 彼は作品の束に爆発する。 700 00:33:54,720 --> 00:33:56,280 701 00:33:56,280 --> 00:33:57,755 それは、クラスのためのいくつかのコミックリリーフだ。 702 00:33:57,755 --> 00:34:02,140 703 00:34:02,140 --> 00:34:05,900 C [聞こえない]この偉大な能力 メモリを制御できるようにする。 704 00:34:05,900 --> 00:34:10,090 そして、それは本当に物事の一つだ それそのような強力な言語になります。 705 00:34:10,090 --> 00:34:13,469 しかし、偉大な力が付属しています 大きな責任。 706 00:34:13,469 --> 00:34:16,230 そしてクレイジーなことが起こることができます あなたが注意していないのであれば。 707 00:34:16,230 --> 00:34:18,560 だから、あなたが使用しているとき ポインタは、あなたが作りたい 708 00:34:18,560 --> 00:34:21,440 あなたが本当に理解してください 正確にあなたが何をやっている。 709 00:34:21,440 --> 00:34:25,530 うまくいけば、次のの少し 時間は、あなたが本当に理解するのに役立ちます 710 00:34:25,530 --> 00:34:27,850 ポインタは、どのようにそれらを使用するには、 そしてそれらを操作する方法について説明します。 711 00:34:27,850 --> 00:34:29,170 712 00:34:29,170 --> 00:34:33,460 >> だから私たちは確信してきたmemory-- 前に、この図を見た。 713 00:34:33,460 --> 00:34:38,540 だから、これはただのシンプルな図である どのように物事は、メモリに格納することがあります。 714 00:34:38,540 --> 00:34:43,145 ですから、基本的にはこれらのを持っている 1バイトブロックの巨大な配列 715 00:34:43,145 --> 00:34:46,000 我々はhere--わずか持っているものである 1ずつ増加します。 716 00:34:46,000 --> 00:34:51,810 これはヘックスにある[聞こえない] そのように8ビットのブロック。 717 00:34:51,810 --> 00:34:55,510 そして、すべてのブロックが関連している いくつかの16進アドレスを持つ。 718 00:34:55,510 --> 00:34:58,750 だから、あなたが表示された場合 に0x、それはちょうど記譜だ 719 00:34:58,750 --> 00:35:00,670 それは16進アドレスだということ。 720 00:35:00,670 --> 00:35:03,970 あなたはこの手段をとることができる メモリ内のいくつかのアドレス。 721 00:35:03,970 --> 00:35:06,935 我々は、メモリアドレスの話をしている あなたは、16進数を見るたびに。 722 00:35:06,935 --> 00:35:10,420 723 00:35:10,420 --> 00:35:14,630 >> 私たちは、int型変数である持っている、 山車は、格納する変数です。 724 00:35:14,630 --> 00:35:16,260 int型ストアの整数そう。 725 00:35:16,260 --> 00:35:17,430 山車ストアが浮かぶ。 726 00:35:17,430 --> 00:35:20,260 だから我々はまた、ポインタを持っている そのストアメモリアドレス。 727 00:35:20,260 --> 00:35:21,660 つまり、マッピングの一種です。 728 00:35:21,660 --> 00:35:24,240 ポインタがもっぱらである メモリアドレスのため。 729 00:35:24,240 --> 00:35:25,780 730 00:35:25,780 --> 00:35:27,292 だから、そこにあなたのタイプのようなものだ。 731 00:35:27,292 --> 00:35:29,550 732 00:35:29,550 --> 00:35:34,470 アプライアンスは、32ビット、どの手段である メモリ·アドレスは4バイトである。 733 00:35:34,470 --> 00:35:37,830 あなたが持っているので、任意のポインタ また、4バイトであることを行っている。 734 00:35:37,830 --> 00:35:43,200 あるいはそれは4バイトだ場合には、 メモリは4バイトです。 735 00:35:43,200 --> 00:35:44,790 ポインタストアメモリ。 736 00:35:44,790 --> 00:35:46,430 従って、それらは4バイトだ。 737 00:35:46,430 --> 00:35:48,460 Cool--はちょうどそれを強化したいと思います。 738 00:35:48,460 --> 00:35:50,120 739 00:35:50,120 --> 00:35:52,220 >> これで、この漫画を取得する必要があります。 740 00:35:52,220 --> 00:35:55,040 私はあなたの何を知らない XKCDファンですが、私はXKCDが大好きです。 741 00:35:55,040 --> 00:35:55,780 それは素晴らしいことだ。 742 00:35:55,780 --> 00:35:57,290 743 00:35:57,290 --> 00:35:57,790 >> わかりました。 744 00:35:57,790 --> 00:36:01,640 私が言ったようにそれはだ、pointers--作成 かなり多くのちょうど何か他のものが好きです。 745 00:36:01,640 --> 00:36:02,930 あなたはタイプを持っている。 746 00:36:02,930 --> 00:36:04,050 あなたが名前を持っています。 747 00:36:04,050 --> 00:36:04,810 右? 748 00:36:04,810 --> 00:36:10,410 それは我々がそこに持っているものだ。 [?六角?]スターはそれがポインタであることを意味し、 749 00:36:10,410 --> 00:36:12,250 その後、あなたはそれを呼び出すために好き。 750 00:36:12,250 --> 00:36:15,770 だから、タイプは表し あなたは何を保存することができます。 751 00:36:15,770 --> 00:36:16,850 752 00:36:16,850 --> 00:36:17,990 すべての権利? 753 00:36:17,990 --> 00:36:24,350 我々はint型を行う場合と同じ方法で、 私たちはそこにint型を格納している知っている。 754 00:36:24,350 --> 00:36:25,990 755 00:36:25,990 --> 00:36:30,280 ポインタを、それを メモリアドレスを保持します。 756 00:36:30,280 --> 00:36:34,240 しかし、それが意味することは、ここどこだthat--です 図面は重宝するだろう。 757 00:36:34,240 --> 00:36:36,170 758 00:36:36,170 --> 00:36:45,980 したがって、この場合には、我々は いくつかは、それでは4を言わせvalue--。 759 00:36:45,980 --> 00:36:49,306 四つは、アドレス1にあります。 760 00:36:49,306 --> 00:36:49,805 OK? 761 00:36:49,805 --> 00:36:51,550 762 00:36:51,550 --> 00:36:56,170 >> この最初の1はここに意味 それは、ポインタ2倍だという。 763 00:36:56,170 --> 00:36:56,740 右? 764 00:36:56,740 --> 00:36:57,628 これは、いくつかのポインタxのだ。 765 00:36:57,628 --> 00:36:58,852 766 00:36:58,852 --> 00:37:00,940 xは何でも何かあってもよい。 767 00:37:00,940 --> 00:37:01,960 768 00:37:01,960 --> 00:37:05,130 どのようなxは、xが4であると言うis--。 769 00:37:05,130 --> 00:37:07,280 それは、保存するために起こっている ここではメモリアドレス。 770 00:37:07,280 --> 00:37:12,260 だから、星をint型、x--これは memory--内の他のスロット 771 00:37:12,260 --> 00:37:13,590 誰が、これが何であるかを知っている。 772 00:37:13,590 --> 00:37:15,430 しかし、それはここにアドレスを格納するために起こっている。 773 00:37:15,430 --> 00:37:27,040 だから、これは次のようになりlike-- この場合は、何であれ、 774 00:37:27,040 --> 00:37:32,630 保存されているどのような0x1--で保存されている 私たちのポインタが保持しているアドレスで、 775 00:37:32,630 --> 00:37:35,280 と一致しなければならない 私たちは、指定されました。 776 00:37:35,280 --> 00:37:40,330 そのように0x1ので、この場合、これは、xである。 777 00:37:40,330 --> 00:37:42,500 778 00:37:42,500 --> 00:37:49,340 これは今まですることができ 我々はこれを使用している間にint型。 779 00:37:49,340 --> 00:37:52,950 >> 同様に、私たちが持っている場合 別1Y、何でも 780 00:37:52,950 --> 00:37:59,130 アドレスyを持つと共に格納される zはchar--同じことであると。 781 00:37:59,130 --> 00:38:05,840 同じように、いつでもあなたを 試してみて、INTXが0.4に等しい行い、 782 00:38:05,840 --> 00:38:09,275 それはあなたで叫ぶとになるだろう いいえのような、あなたはint型を望んでいたと述べた。 783 00:38:09,275 --> 00:38:10,525 これは、整数であるとする。 784 00:38:10,525 --> 00:38:11,900 それフロートにしようと停止します。 785 00:38:11,900 --> 00:38:14,150 >> だから、物事は彼らがなりたいものとする。 786 00:38:14,150 --> 00:38:15,159 787 00:38:15,159 --> 00:38:16,200 物事が自分自身であるとする。 788 00:38:16,200 --> 00:38:19,380 789 00:38:19,380 --> 00:38:23,450 だから、大きなものだけである ポインタのタイプに関わらず 790 00:38:23,450 --> 00:38:26,101 それはそれが唯一だ、である 事はあなたがそこに格納することができます。 791 00:38:26,101 --> 00:38:26,600 OK? 792 00:38:26,600 --> 00:38:27,910 793 00:38:27,910 --> 00:38:31,160 練習では、と同様に 先週、すべてのもの 794 00:38:31,160 --> 00:38:32,817 本当に親切の抽象的と思われる。 795 00:38:32,817 --> 00:38:34,150 私たちはいくつかの練習をやろうとしている。 796 00:38:34,150 --> 00:38:36,760 それは、より多くの意味を確認する必要があります。 797 00:38:36,760 --> 00:38:44,580 >> だから、だdereferencing--参照し、 本当に重要なのは、これらのストレートを取得します。 798 00:38:44,580 --> 00:38:46,630 私はまだ、リフレッシュする必要があります すべての今して。 799 00:38:46,630 --> 00:38:48,450 そして、私は私がしたいです1ウエイト、のようだ? 800 00:38:48,450 --> 00:38:56,080 だから、アンパサンドは、実際に得られます あなたの参照またはアドレス。 801 00:38:56,080 --> 00:39:00,100 だから、中のアドレスを返す 変数のメモリが格納される。 802 00:39:00,100 --> 00:39:01,170 803 00:39:01,170 --> 00:39:07,020 だから、実際にあなたに戻るために起こっている 進、それを逆参照のに対し、 804 00:39:07,020 --> 00:39:10,641 実際にあなたを与えるために起こっている そこに格納されたデータ。 805 00:39:10,641 --> 00:39:11,140 OK? 806 00:39:11,140 --> 00:39:12,680 807 00:39:12,680 --> 00:39:16,060 だから我々は例を見てするつもりだ 本当に速い、または実際に次のアップ。 808 00:39:16,060 --> 00:39:18,050 809 00:39:18,050 --> 00:39:19,150 >> [OK]をクリックします。 810 00:39:19,150 --> 00:39:21,790 だから我々は本当に考えなければならない 慎重にこのことについて。 811 00:39:21,790 --> 00:39:23,860 そこでここでは、いくつかの整数xを持っている。 812 00:39:23,860 --> 00:39:26,485 私はこれを試してみて、描画するつもりだ 自分の能力を最大限に外。 813 00:39:26,485 --> 00:39:30,230 814 00:39:30,230 --> 00:39:32,410 だから我々はこのスロットxを持っているつもり。 815 00:39:32,410 --> 00:39:35,850 816 00:39:35,850 --> 00:39:37,315 そして、それは5の格納だ。 817 00:39:37,315 --> 00:39:38,640 818 00:39:38,640 --> 00:39:40,090 そのアドレスは、0x4にある。 819 00:39:40,090 --> 00:39:41,920 820 00:39:41,920 --> 00:39:43,160 クール? 821 00:39:43,160 --> 00:39:44,100 すべての良い。 822 00:39:44,100 --> 00:39:45,470 >> だから今我々は、このポインタを持っている。 823 00:39:45,470 --> 00:39:46,916 824 00:39:46,916 --> 00:39:47,990 それはここを超えていた。 825 00:39:47,990 --> 00:39:52,130 826 00:39:52,130 --> 00:39:57,560 アンパサンドは私たちを与える 何かのアドレス。 827 00:39:57,560 --> 00:40:00,780 そこで、この場合には、xのアドレスだ。 828 00:40:00,780 --> 00:40:01,875 xのアドレスは何ですか? 829 00:40:01,875 --> 00:40:05,660 830 00:40:05,660 --> 00:40:12,590 04--このポインタが0x08にである。 831 00:40:12,590 --> 00:40:14,490 832 00:40:14,490 --> 00:40:14,990 クール? 833 00:40:14,990 --> 00:40:16,570 834 00:40:16,570 --> 00:40:21,570 だから、このことについて考えることができます ポインタは、04、ちょうどここポイント以上。 835 00:40:21,570 --> 00:40:22,840 836 00:40:22,840 --> 00:40:25,740 そして、彼らはポインタと呼ばれるている 我々はこの中に多くを得るようにするので、 837 00:40:25,740 --> 00:40:28,450 あなたは物事を指して見ることになるだろう。 838 00:40:28,450 --> 00:40:31,470 そして、もう一つのブロックは、別のを指す ブロックは、より多くの意味になる。 839 00:40:31,470 --> 00:40:32,760 840 00:40:32,760 --> 00:40:33,890 だからここ2です。 841 00:40:33,890 --> 00:40:38,230 そして、我々はいくつかを持っている what-- 0x0Cのあるコピー、。 842 00:40:38,230 --> 00:40:41,290 843 00:40:41,290 --> 00:40:43,420 そして、それはに起こっている 私たちのポインタを間接参照。 844 00:40:43,420 --> 00:40:46,790 >> だから、何であるかを言っている [OK]を、ここに私たちのポインタです。 845 00:40:46,790 --> 00:40:53,090 それが格納された値は0x04のです、そして、何 それは、このアドレスにアクセスしていると言っています 846 00:40:53,090 --> 00:40:54,300 それに何があるか教えてください。 847 00:40:54,300 --> 00:40:55,520 848 00:40:55,520 --> 00:40:57,710 だから、効果的だ この矢印は何をやっている。 849 00:40:57,710 --> 00:40:58,750 850 00:40:58,750 --> 00:41:01,280 あなたの星のように考えることができます。 851 00:41:01,280 --> 00:41:05,410 私たちは星をやるときに[OK]を、それが従うことを意味します。 852 00:41:05,410 --> 00:41:06,810 このアドレスに移動します。 853 00:41:06,810 --> 00:41:11,430 そして、それは基本的には次のようだ このメモリチャンクにこの矢印。 854 00:41:11,430 --> 00:41:15,380 そして5である、それに何があるか私たちを与える。 855 00:41:15,380 --> 00:41:18,840 私たちのコピーが5に等しく、なぜそれがです。 856 00:41:18,840 --> 00:41:20,120 それは理にかなっていますか? 857 00:41:20,120 --> 00:41:22,769 誰もが通過する私を必要としない その再び、以上のゆっくり? 858 00:41:22,769 --> 00:41:24,560 あなたは私が行きたい それもう一回通って? 859 00:41:24,560 --> 00:41:25,060 [OK]をクリックします。 860 00:41:25,060 --> 00:41:27,549 861 00:41:27,549 --> 00:41:28,840 我々は再びそれを再描画するつもりだ。 862 00:41:28,840 --> 00:41:31,930 863 00:41:31,930 --> 00:41:37,205 我々は起動すると、私たちはすべて我々が持って同意する 変数のメモリの一部のチャンク 864 00:41:37,205 --> 00:41:40,890 我々は5に等しくセットのx。 865 00:41:40,890 --> 00:41:42,910 それがメモリ内にある場合、我々は制御しません。 866 00:41:42,910 --> 00:41:45,520 だから、この場所はちょうどです 任意に割り当て。 867 00:41:45,520 --> 00:41:47,770 868 00:41:47,770 --> 00:41:48,731 そこに良い? 869 00:41:48,731 --> 00:41:49,230 [OK]をクリックします。 870 00:41:49,230 --> 00:41:50,420 871 00:41:50,420 --> 00:41:53,330 その後、我々はintへのポインタを初期化します。 872 00:41:53,330 --> 00:41:56,900 つまり、それが指すように許可されている理由だ xは我々がここでint型を持っているので。 873 00:41:56,900 --> 00:42:00,840 私たちは、別のチャンクを持っている メモリなぜならこのポインタ 874 00:42:00,840 --> 00:42:03,485 ちょうど何かのような変数である。 875 00:42:03,485 --> 00:42:06,615 これは、任意に割り当てられている メモリ内のいくつかの領域。 876 00:42:06,615 --> 00:42:07,630 877 00:42:07,630 --> 00:42:10,830 そして、何それが格納しても、xのアドレスです。 878 00:42:10,830 --> 00:42:13,200 アンパサンドは、xのアドレスを意味します。 879 00:42:13,200 --> 00:42:14,575 だから、xのアドレスは何ですか? 880 00:42:14,575 --> 00:42:19,179 881 00:42:19,179 --> 00:42:20,614 >> 聴衆:それはzero--だ 882 00:42:20,614 --> 00:42:21,280 SPEAKER 1:0x04の。 883 00:42:21,280 --> 00:42:24,350 884 00:42:24,350 --> 00:42:25,940 だからthen--最後の1。 885 00:42:25,940 --> 00:42:30,650 我々は再びいくつかのcopy--を持っている ちょうど別の変数。 886 00:42:30,650 --> 00:42:32,520 それでは、いくつかの任意の場所を割り当ててみましょう。 887 00:42:32,520 --> 00:42:35,260 888 00:42:35,260 --> 00:42:38,080 そして、私たち私たちのポインタを間接参照。 889 00:42:38,080 --> 00:42:42,490 星はに行く意味 アドレスは、私のポインタに格納。 890 00:42:42,490 --> 00:42:44,480 何があるか教えてください。 891 00:42:44,480 --> 00:42:47,290 だから、アドレスが格納される 我々のポインタは0x04である。 892 00:42:47,290 --> 00:42:49,070 893 00:42:49,070 --> 00:42:51,310 だから我々はそのアドレスにアクセスしてください。 894 00:42:51,310 --> 00:42:52,402 895 00:42:52,402 --> 00:42:54,590 それは、そのアドレスを指しています。 896 00:42:54,590 --> 00:42:57,481 このメモリ·ブロックの内側に何ですか? 897 00:42:57,481 --> 00:42:57,980 それは5つだ。 898 00:42:57,980 --> 00:42:59,210 899 00:42:59,210 --> 00:43:01,650 だから、私たちは私たちのコピーを割り当てるものだ。 900 00:43:01,650 --> 00:43:03,430 901 00:43:03,430 --> 00:43:04,860 みんな良い? 902 00:43:04,860 --> 00:43:05,360 涼しい。 903 00:43:05,360 --> 00:43:07,010 904 00:43:07,010 --> 00:43:08,330 Again--写真。 905 00:43:08,330 --> 00:43:19,750 906 00:43:19,750 --> 00:43:25,200 >> だから、私はhere--値を追跡 あなたたちはこのことについて考えてみましょうする予定。 907 00:43:25,200 --> 00:43:26,550 908 00:43:26,550 --> 00:43:27,750 私たちは別の画像を描くことができます。 909 00:43:27,750 --> 00:43:31,260 しかし、私はあなたがしようと理由たい 分間自分でこの貫通。 910 00:43:31,260 --> 00:44:01,430 911 00:44:01,430 --> 00:44:04,149 >> 彼らは明らかにしなかったので 私たちの例アドレス、 912 00:44:04,149 --> 00:44:06,940 私はちょうどアンパサンドをするつもりですx-- どの家にそれを後押しする必要があります。 913 00:44:06,940 --> 00:44:07,950 アンパサンドは、アドレスを意味します。 914 00:44:07,950 --> 00:44:09,540 915 00:44:09,540 --> 00:44:12,360 >> 最初の1でだから、誰もが 最初の行で行く。 916 00:44:12,360 --> 00:44:15,690 一部のXセットの一部five-- メモリ内のランダムスロット。 917 00:44:15,690 --> 00:44:17,660 918 00:44:17,660 --> 00:44:23,200 int型星のポインタが等しい xのアドレスに、右? 919 00:44:23,200 --> 00:44:28,180 int型のスターポインタが作成されます このブロックは、それがポインタを呼び出し、 920 00:44:28,180 --> 00:44:30,650 xのアドレスに割り当てます。 921 00:44:30,650 --> 00:44:32,750 922 00:44:32,750 --> 00:44:34,230 私はアンパサンドでひどいよ。 923 00:44:34,230 --> 00:44:36,460 924 00:44:36,460 --> 00:44:40,550 >> 今、私たちは、私たちは言うことが何であるかをやっている [OK]を、私たちのポインタを間接参照。 925 00:44:40,550 --> 00:44:42,760 だから我々は我々のポインタに何があるかは、[OK]を行く? 926 00:44:42,760 --> 00:44:44,820 それはアンパサンドXの。 927 00:44:44,820 --> 00:44:49,400 アンパサンドxに移動し、それを再割り当てする。 928 00:44:49,400 --> 00:44:51,620 929 00:44:51,620 --> 00:44:57,480 >> だから今、アンパサンドxは35になるだろう。 930 00:44:57,480 --> 00:45:01,540 931 00:45:01,540 --> 00:45:05,174 だから、基本的に、あなたがいるとき デリファレンス、[OK]を行く。 932 00:45:05,174 --> 00:45:07,090 あなたが描くことになるだろう このような絵。 933 00:45:07,090 --> 00:45:09,423 あなたが描くことになるだろう それがどこにあるの上に矢印を。 934 00:45:09,423 --> 00:45:16,030 だから、メモリ内のこのスロットに移動し、いずれか 私にその値を返す、またはそれを変える。 935 00:45:16,030 --> 00:45:21,620 この場合、我々はこの時だから 値は、我々はそれが35であることが代入しています。 936 00:45:21,620 --> 00:45:24,700 最後のに対して 1、あなたが気づけば、私たちは 937 00:45:24,700 --> 00:45:27,680 何であったかの割り当てられた 何か他にここで。 938 00:45:27,680 --> 00:45:30,450 939 00:45:30,450 --> 00:45:32,245 >> そこで、彼らはこの素晴らしいテーブルがあります。 940 00:45:32,245 --> 00:45:35,000 941 00:45:35,000 --> 00:45:36,890 それはそんなに悪くはありません。 942 00:45:36,890 --> 00:45:37,970 君たちはそれに取り組んでいます。 943 00:45:37,970 --> 00:45:39,640 私は、ボード上でそれを引き出すつもりだ。 944 00:45:39,640 --> 00:45:41,306 私たちは、[OK]を、それを一緒に記入するつもりですか? 945 00:45:41,306 --> 00:45:42,290 946 00:45:42,290 --> 00:45:45,530 だから、いくつかの論文、グラブをつかむ パートナーは、作業を開始する。 947 00:45:45,530 --> 00:45:53,897 948 00:45:53,897 --> 00:45:55,605 私は取得するつもりだ チョークの大きな作品。 949 00:45:55,605 --> 00:45:56,624 950 00:45:56,624 --> 00:45:58,150 それは多くのことになるだろうから。 951 00:45:58,150 --> 00:45:59,410 952 00:45:59,410 --> 00:45:59,910 [OK]をクリックします。 953 00:45:59,910 --> 00:48:08,567 954 00:48:08,567 --> 00:48:09,150 PROFESSOR:OK。 955 00:48:09,150 --> 00:48:11,599 956 00:48:11,599 --> 00:48:12,890 それでは最初の行から始めましょう。 957 00:48:12,890 --> 00:48:14,070 958 00:48:14,070 --> 00:48:16,970 私たちはあなたたち、その後、そこから始めましょう おそらくいくつかのより多くを介して動作することができます。 959 00:48:16,970 --> 00:48:17,870 [OK]をクリックします。 960 00:48:17,870 --> 00:48:19,810 B回Cを等しいので、何ですか? 961 00:48:19,810 --> 00:48:21,420 962 00:48:21,420 --> 00:48:23,260 それは私が約束する、トリックの質問ではありません。 963 00:48:23,260 --> 00:48:24,440 >> 学生:4〜5倍。 964 00:48:24,440 --> 00:48:25,420 >> PROFESSOR:4〜5倍。 965 00:48:25,420 --> 00:48:25,920 20。 966 00:48:25,920 --> 00:48:26,730 だから、bは何ですか? 967 00:48:26,730 --> 00:48:27,921 968 00:48:27,921 --> 00:48:28,420 学生:4。 969 00:48:28,420 --> 00:48:30,204 970 00:48:30,204 --> 00:48:31,043 >> PROFESSOR:とC? 971 00:48:31,043 --> 00:48:31,542 学生:5。 972 00:48:31,542 --> 00:48:32,083 PROFESSOR:5。 973 00:48:32,083 --> 00:48:35,960 その後、これはちょうどしようとしている 、アンパサンドbをアンパサンドも、 974 00:48:35,960 --> 00:48:38,575 アンパサンドC、右? 975 00:48:38,575 --> 00:48:39,728 976 00:48:39,728 --> 00:48:40,596 悪いことではありません。 977 00:48:40,596 --> 00:48:42,081 それは十分に簡単です。 978 00:48:42,081 --> 00:48:42,580 [OK]をクリックします。 979 00:48:42,580 --> 00:48:44,300 次の1だから。 980 00:48:44,300 --> 00:48:48,725 Aは場合に、時刻Cに等しい 誰もがその不慣れだった。 981 00:48:48,725 --> 00:48:49,812 982 00:48:49,812 --> 00:48:53,300 おなじみの誰もがある 時代とともに等しい? 983 00:48:53,300 --> 00:49:00,105 [OK]を、これはすべてこれですmeans-- のための速記は、時刻Cに等しい。 984 00:49:00,105 --> 00:49:04,840 また、部門とそれを行うことができ、 を加えて、減算した。 985 00:49:04,840 --> 00:49:12,130 あなたは、等号を行うことができ、またはプラスは、cに等しい プラスC、同等のマイナスに等しい意味 986 00:49:12,130 --> 00:49:15,190 cがマイナスCに等しいだろう。 987 00:49:15,190 --> 00:49:16,690 それはちょうど糖衣構文です。 988 00:49:16,690 --> 00:49:19,380 989 00:49:19,380 --> 00:49:24,140 >> そこで、この場合には、aはに等しい 時間cは、私たちに何を与えるだろう? 990 00:49:24,140 --> 00:49:25,910 991 00:49:25,910 --> 00:49:28,186 ここでも、いないトリックの質問。 992 00:49:28,186 --> 00:49:28,965 >> 学生:100。 993 00:49:28,965 --> 00:49:29,300 >> PROFESSOR:100。 994 00:49:29,300 --> 00:49:30,383 何かが変わるのでしょうか? 995 00:49:30,383 --> 00:49:31,790 996 00:49:31,790 --> 00:49:32,290 いいえ。 997 00:49:32,290 --> 00:49:37,380 998 00:49:37,380 --> 00:49:39,850 たぶん私は最終的に取得します 私のアンパサンドでより良い。 999 00:49:39,850 --> 00:49:42,047 >> 学生:[OK]を、申し訳ありませんが、どのように100を取得したのですか? 1000 00:49:42,047 --> 00:49:42,630 PROFESSOR:OK。 1001 00:49:42,630 --> 00:49:46,594 そうに等しい 時間cは、そう時間cを。 1002 00:49:46,594 --> 00:49:48,510 学生:ああ、あなたが使用している previous--用 1003 00:49:48,510 --> 00:49:49,135 PROFESSOR:はい。 1004 00:49:49,135 --> 00:49:51,450 したがって、これらは、私たちの最新の値です。 1005 00:49:51,450 --> 00:49:53,990 これらはあなたがどうあるべきかである 私たちは下に移動するように使用して、[OK]をクリックします。 1006 00:49:53,990 --> 00:49:57,290 1007 00:49:57,290 --> 00:50:01,520 だから、bは右、唯一の変化とは? 1008 00:50:01,520 --> 00:50:02,910 それでは、他のすべてに記入してみましょう。 1009 00:50:02,910 --> 00:50:09,110 1010 00:50:09,110 --> 00:50:11,330 B.どのようなbがあることを行っている? 1011 00:50:11,330 --> 00:50:13,020 1012 00:50:13,020 --> 00:50:14,140 であること、又はではない。 1013 00:50:14,140 --> 00:50:18,680 1014 00:50:18,680 --> 00:50:20,240 だから、これは何をしているのですか? 1015 00:50:20,240 --> 00:50:21,605 スターPAは何をしているのですか? 1016 00:50:21,605 --> 00:50:23,280 1017 00:50:23,280 --> 00:50:25,350 >> 学生:コードPAの場所へ。 1018 00:50:25,350 --> 00:50:26,390 1019 00:50:26,390 --> 00:50:27,480 >> 学生:いいえ、全くありません。 1020 00:50:27,480 --> 00:50:29,470 だから、これはdのリファレンスです。 1021 00:50:29,470 --> 00:50:31,580 >> 学生:だからbはPAの利き値です。 1022 00:50:31,580 --> 00:50:37,340 >> PROFESSOR:うん、​​そうPAがある のアドレスは、右? 1023 00:50:37,340 --> 00:50:42,430 だから、ある場所に行くと言っています 格納されているし、それに、その値を与える。 1024 00:50:42,430 --> 00:50:43,884 だから、bは何ですか? 1025 00:50:43,884 --> 00:50:44,425 学生:100。 1026 00:50:44,425 --> 00:50:46,534 PROFESSOR:100。 1027 00:50:46,534 --> 00:50:47,450 パーフェクト。 1028 00:50:47,450 --> 00:50:49,879 [OK]を、ので、pcは変えているものです。 1029 00:50:49,879 --> 00:50:51,170 他のすべてが同じまま。 1030 00:50:51,170 --> 00:50:57,160 1031 00:50:57,160 --> 00:50:58,620 どのようなPCがあることを行っている? 1032 00:50:58,620 --> 00:51:00,770 1033 00:51:00,770 --> 00:51:01,580 単純な代入。 1034 00:51:01,580 --> 00:51:03,520 1035 00:51:03,520 --> 00:51:05,990 PcはPAに等しく、PAは何ですか? 1036 00:51:05,990 --> 00:51:07,049 >> 学生は:アンパサンド。 1037 00:51:07,049 --> 00:51:07,840 PROFESSOR:パーフェクト。 1038 00:51:07,840 --> 00:51:09,490 1039 00:51:09,490 --> 00:51:10,740 今、私たちは興味深い取得している。 1040 00:51:10,740 --> 00:51:12,310 1041 00:51:12,310 --> 00:51:15,230 [OK]を、のこの1つを打破しましょう​​。 1042 00:51:15,230 --> 00:51:21,110 それだから、まず、B時間cの何 この1の簡単な部分、右? 1043 00:51:21,110 --> 00:51:22,360 B回C is-- 1044 00:51:22,360 --> 00:51:23,320 >> 学生:500。 1045 00:51:23,320 --> 00:51:28,880 >> PROFESSOR:うん、​​そう この1は何をやっている、 1046 00:51:28,880 --> 00:51:33,705 それのスターPBあれば、何を変えるのか? 1047 00:51:33,705 --> 00:51:35,320 1048 00:51:35,320 --> 00:51:37,242 >> 学生:the--の新 1049 00:51:37,242 --> 00:51:38,200 PROFESSOR:Bの中身は? 1050 00:51:38,200 --> 00:51:41,340 学生:宇宙には何が そのPBはを指している。 1051 00:51:41,340 --> 00:51:43,406 PROFESSOR:Pbがto--指している 1052 00:51:43,406 --> 00:51:43,905 学生:B. 1053 00:51:43,905 --> 00:51:46,740 PROFESSOR:B.だからのみ 事の変化は、B、権利である。 1054 00:51:46,740 --> 00:51:50,800 そこでB倍cを、500。 1055 00:51:50,800 --> 00:51:52,367 だから、今どのような変更だ。 1056 00:51:52,367 --> 00:51:59,091 1057 00:51:59,091 --> 00:51:59,590 涼しい。 1058 00:51:59,590 --> 00:52:00,340 1059 00:52:00,340 --> 00:52:00,840 ラブリー。 1060 00:52:00,840 --> 00:52:01,905 君たちは素晴らしいやっている。 1061 00:52:01,905 --> 00:52:03,650 1062 00:52:03,650 --> 00:52:06,740 すべての権利、これを破壊する。 1063 00:52:06,740 --> 00:52:08,050 1064 00:52:08,050 --> 00:52:09,630 Cは右、変化している? 1065 00:52:09,630 --> 00:52:11,530 だから我々は他のすべてに記入することができます。 1066 00:52:11,530 --> 00:52:12,540 1067 00:52:12,540 --> 00:52:13,205 見てみましょう。 1068 00:52:13,205 --> 00:52:19,125 1069 00:52:19,125 --> 00:52:19,625 [OK]をクリックします。 1070 00:52:19,625 --> 00:52:21,420 1071 00:52:21,420 --> 00:52:24,740 我々は、cがあることを行っていることを知っている 2つの数の積は、右? 1072 00:52:24,740 --> 00:52:26,290 1073 00:52:26,290 --> 00:52:27,980 しかしどのような2つの数字? 1074 00:52:27,980 --> 00:52:28,970 >> 学生:AとC? 1075 00:52:28,970 --> 00:52:31,930 >> PROFESSOR:だからである 最初の1のための権利。 1076 00:52:31,930 --> 00:52:34,385 だから我々は、右のページを参照してdをしている? 1077 00:52:34,385 --> 00:52:35,390 1078 00:52:35,390 --> 00:52:42,870 への点Pを、私たちは知っている これは100倍ものになるだろう? 1079 00:52:42,870 --> 00:52:46,232 へのPCポイントを何回? 1080 00:52:46,232 --> 00:52:47,410 1081 00:52:47,410 --> 00:52:48,740 を指す。 1082 00:52:48,740 --> 00:52:55,038 だから、100回100が10,000です。 1083 00:52:55,038 --> 00:52:56,170 それは理にかなっていますか? 1084 00:52:56,170 --> 00:52:57,640 1085 00:52:57,640 --> 00:52:58,200 涼しい。 1086 00:52:58,200 --> 00:53:00,500 ホームストレッチ、みんな、最後の行。 1087 00:53:00,500 --> 00:53:01,190 [OK]をクリックします。 1088 00:53:01,190 --> 00:53:02,160 ここで何を変えるのか? 1089 00:53:02,160 --> 00:53:05,640 1090 00:53:05,640 --> 00:53:06,935 >> 学生:A. 1091 00:53:06,935 --> 00:53:09,435 PROFESSOR:A.パーフェクトなので、 他のすべてが同じ滞在することができます。 1092 00:53:09,435 --> 00:53:16,210 1093 00:53:16,210 --> 00:53:16,710 [OK]をクリックします。 1094 00:53:16,710 --> 00:53:17,970 そして、何でしょうか? 1095 00:53:17,970 --> 00:53:23,610 1096 00:53:23,610 --> 00:53:26,060 だから、それは何回ですか? 1097 00:53:26,060 --> 00:53:27,120 これは星のPBである。 1098 00:53:27,120 --> 00:53:29,750 1099 00:53:29,750 --> 00:53:34,490 だからスターPBは、ここにある意味 PB、PB点がBに。 1100 00:53:34,490 --> 00:53:35,370 >> 学生:500。 1101 00:53:35,370 --> 00:53:36,230 >> PROFESSOR:500。 1102 00:53:36,230 --> 00:53:39,236 だから我々は500回100を持っている。 1103 00:53:39,236 --> 00:53:41,758 その50,000です。 1104 00:53:41,758 --> 00:53:43,216 やれやれ! 1105 00:53:43,216 --> 00:53:45,646 その時に見てください。 1106 00:53:45,646 --> 00:53:47,982 >> 学生:なぜ私たちは持っている last--用&C 1107 00:53:47,982 --> 00:53:48,690 PROFESSOR:申し訳ありません。 1108 00:53:48,690 --> 00:53:50,080 学生:ああ、[OK]をクリックします。 1109 00:53:50,080 --> 00:53:51,600 PROFESSOR:私の悪い。 1110 00:53:51,600 --> 00:53:52,890 書き込みがたくさん。 1111 00:53:52,890 --> 00:53:53,917 1112 00:53:53,917 --> 00:53:54,500 みんな良い? 1113 00:53:54,500 --> 00:53:55,630 1114 00:53:55,630 --> 00:53:56,660 右、悪くない? 1115 00:53:56,660 --> 00:53:58,490 ほんの少しかかります 一方、スルー動作するように。 1116 00:53:58,490 --> 00:54:01,080 あなたはそれを打破した場合、 何各部分を理解する 1117 00:54:01,080 --> 00:54:03,197 としてto--言及している すべてにそれはだ、 1118 00:54:03,197 --> 00:54:05,780 少しにそれを打破yes-- その後の問題と再結合し、 1119 00:54:05,780 --> 00:54:07,345 そしてあなたはいくつかの素晴らしいものを行うことができます。 1120 00:54:07,345 --> 00:54:08,970 そこに答えがあるが、我々はそれをした。 1121 00:54:08,970 --> 00:54:10,324 1122 00:54:10,324 --> 00:54:11,115 ポインタ演算。 1123 00:54:11,115 --> 00:54:13,961 1124 00:54:13,961 --> 00:54:14,460 ああ。 1125 00:54:14,460 --> 00:54:15,510 私の手は、すべてのチョークのようです。 1126 00:54:15,510 --> 00:54:17,970 そのように加算または減算 int型は、ポインタを調整 1127 00:54:17,970 --> 00:54:21,890 ポインタの型のサイズによって。 1128 00:54:21,890 --> 00:54:22,940 1129 00:54:22,940 --> 00:54:28,390 どのようにすべてのタイプのを忘れないでください 異なるサイズを持って? 1130 00:54:28,390 --> 00:54:34,890 だから、doubleまたはlong longのようなものです 8とint型は4ですが、charが1である。 1131 00:54:34,890 --> 00:54:38,360 >> だから、あなたが何をしたいか 覚えて一つのことをis-- 1132 00:54:38,360 --> 00:54:44,080 あなただけではどのくらいです ポインタ値は、実際に変化 1133 00:54:44,080 --> 00:54:46,550 に依存することになる ポインタの種類がある。 1134 00:54:46,550 --> 00:54:50,820 1135 00:54:50,820 --> 00:54:51,820 これで良い皆? 1136 00:54:51,820 --> 00:54:52,760 私はそれを消去することができますか? 1137 00:54:52,760 --> 00:54:53,440 我々は良いしている? 1138 00:54:53,440 --> 00:54:53,940 恐ろしい。 1139 00:54:53,940 --> 00:55:01,020 1140 00:55:01,020 --> 00:55:07,501 >> だから我々はいくつかのポインタを持っている場合 これはbe--しようとしているthat--私は今 1141 00:55:07,501 --> 00:55:08,834 それint型のポインタをするつもり。 1142 00:55:08,834 --> 00:55:10,610 1143 00:55:10,610 --> 00:55:12,760 それは、これを格納します。 1144 00:55:12,760 --> 00:55:14,210 1145 00:55:14,210 --> 00:55:20,170 あなたは、ポインタを言うとしたら プラスワン、それは何をする何が起こっているか 1146 00:55:20,170 --> 00:55:23,420 それが更新するために起こっているされている int型のサイズによって、それ 1147 00:55:23,420 --> 00:55:25,950 それはだから ポインタの種類がある。 1148 00:55:25,950 --> 00:55:28,260 >> Cでは、すべてがある 非常に厳しいと調整。 1149 00:55:28,260 --> 00:55:29,440 1150 00:55:29,440 --> 00:55:35,260 int型のポインタはによって更新しようとしている intはかかるだろうスペースの量。 1151 00:55:35,260 --> 00:55:36,260 int型は4バイトです。 1152 00:55:36,260 --> 00:55:37,650 1153 00:55:37,650 --> 00:55:39,060 >> だから、これはどのようにを回すでしょうか? 1154 00:55:39,060 --> 00:55:40,876 1155 00:55:40,876 --> 00:55:44,390 あなたはちょうどこの上に4を追加している。 1156 00:55:44,390 --> 00:55:50,040 今すぐあなたのポインタがOK be--でしょう。 1157 00:55:50,040 --> 00:55:51,820 1158 00:55:51,820 --> 00:55:55,380 >> だから、char型だった私たちは、ポインタを行った場合 プラスワン、それは今何でしょう? 1159 00:55:55,380 --> 00:56:00,300 1160 00:56:00,300 --> 00:56:03,330 それは我々をふりstarted--場合 今はそれが0x08にだstarted--。 1161 00:56:03,330 --> 00:56:04,850 1162 00:56:04,850 --> 00:56:10,850 それでは、これがあったとしましょう char型のポインタ、そして我々は1を追加しました。 1163 00:56:10,850 --> 00:56:11,850 それはに何を変更するのでしょうか? 1164 00:56:11,850 --> 00:56:14,989 1165 00:56:14,989 --> 00:56:16,030 charが何バイトある? 1166 00:56:16,030 --> 00:56:16,680 >> 聴衆:One。 1167 00:56:16,680 --> 00:56:17,304 >> SPEAKER 1:ワン。 1168 00:56:17,304 --> 00:56:18,309 聴衆:だから0x09の。 1169 00:56:18,309 --> 00:56:19,600 SPEAKER 1:だからそれは9になります。 1170 00:56:19,600 --> 00:56:22,571 1171 00:56:22,571 --> 00:56:23,820 だから何かが覚えておくべき。 1172 00:56:23,820 --> 00:56:28,340 あなたが1を追加するちょうどその時、そうではありません それはシャアない限り、1を加える。 1173 00:56:28,340 --> 00:56:34,190 それはどのように多くの追加だ 、それはタイプバイト 1174 00:56:34,190 --> 00:56:36,960 我々が持っている理由である ここまでこの方程式。 1175 00:56:36,960 --> 00:56:40,190 だから、int型倍の大きさだ ポインタの種類。 1176 00:56:40,190 --> 00:56:42,850 1177 00:56:42,850 --> 00:56:44,730 >> だから我々はここでの例を持っている。 1178 00:56:44,730 --> 00:56:47,250 1179 00:56:47,250 --> 00:56:54,430 yが、その値、を0x4に割り当てられていた 我々は、Yやっプラス1に等しいとき。 1180 00:56:54,430 --> 00:56:56,830 しかも、それには何が Xでは、変更されません。 1181 00:56:56,830 --> 00:56:58,610 何の変更を行うことは、Yに何があるかである。 1182 00:56:58,610 --> 00:57:04,980 y方向に格納されたアドレスが4で更新 4バイトがint型であるので、 1183 00:57:04,980 --> 00:57:06,097 そしてそれはint型のポインタです。 1184 00:57:06,097 --> 00:57:07,290 1185 00:57:07,290 --> 00:57:07,790 >> わかりました。 1186 00:57:07,790 --> 00:57:09,123 だから今、私たちは別の練習を持っている。 1187 00:57:09,123 --> 00:57:11,140 1188 00:57:11,140 --> 00:57:13,500 そこで問題が印刷されますものです。 1189 00:57:13,500 --> 00:57:36,710 1190 00:57:36,710 --> 00:57:37,650 任意のアイデア? 1191 00:57:37,650 --> 00:57:41,690 1192 00:57:41,690 --> 00:57:43,699 >> 聴衆:数 幸せな猫の文字? 1193 00:57:43,699 --> 00:57:44,490 SPEAKER 1:その通り。 1194 00:57:44,490 --> 00:57:45,531 だからあなたの文字列で好きです。 1195 00:57:45,531 --> 00:57:47,302 1196 00:57:47,302 --> 00:57:48,260 誰もがそれを取得していますか? 1197 00:57:48,260 --> 00:57:49,509 我々はそれを歩くしたいですか? 1198 00:57:49,509 --> 00:57:50,300 1199 00:57:50,300 --> 00:57:52,010 >> [OK]、[はい。 1200 00:57:52,010 --> 00:57:57,385 だから私たちは私が持っているものhere-- このようなので、はるかに。 1201 00:57:57,385 --> 00:57:59,340 私がする必要はありません [聞こえない]途方もなく。 1202 00:57:59,340 --> 00:58:01,690 >> だから我々はここで我々の文字列、幸せな猫を持っている。 1203 00:58:01,690 --> 00:58:02,950 ラブリー。 1204 00:58:02,950 --> 00:58:05,080 我々はいくつかのカウンターを持っている 我々を追跡している。 1205 00:58:05,080 --> 00:58:11,430 だから我々は、いくつかのchar *ポインタを持っている そのちょうどSTRに等しく設定される。 1206 00:58:11,430 --> 00:58:14,320 これが何をやっていると、それはだです いくつかのポインタを割り当てる 1207 00:58:14,320 --> 00:58:16,380 あなたの文字列の先頭に。 1208 00:58:16,380 --> 00:58:19,840 私は確信しているので、それとして 講演で言及した、 1209 00:58:19,840 --> 00:58:22,290 我々は、この君たち与えてくれた 文字列と呼ばれるデータ型。 1210 00:58:22,290 --> 00:58:29,070 >> しかし、実際に文字列はちょうどです 配列はchar *型のようにof--。 1211 00:58:29,070 --> 00:58:32,330 これは、文字の束へのポインタだ メモリ内に連続していること。 1212 00:58:32,330 --> 00:58:33,680 1213 00:58:33,680 --> 00:58:36,280 だから、これはちょうどそれを設定します 任意の文字列に等しい 1214 00:58:36,280 --> 00:58:38,980 ここで識別 その最初の文字がある。 1215 00:58:38,980 --> 00:58:42,710 だから、これはいくつかのポイントを設定されている 文字列の先頭に等しい。 1216 00:58:42,710 --> 00:58:44,130 誰もそこに良い? 1217 00:58:44,130 --> 00:58:44,960 涼しい。 1218 00:58:44,960 --> 00:58:49,840 >> だから、これは私たちのポインタを逆参照される。 1219 00:58:49,840 --> 00:58:53,760 だから、実際に起こっている ここで私たちにいくつかの値を与え、 1220 00:58:53,760 --> 00:58:55,610 私たちが話している私たちの文字列中。 1221 00:58:55,610 --> 00:58:58,342 そして、我々は限り、言っている それがヌルターミネータではありません。 1222 00:58:58,342 --> 00:59:00,550 だから、あなたが得るまで続ける 文字列の最後に。 1223 00:59:00,550 --> 00:59:02,180 1224 00:59:02,180 --> 00:59:04,190 1によってあなたのポインターを更新します。 1225 00:59:04,190 --> 00:59:09,250 だから、rは、それは実際に1によって更新されます 毎回これがcharであるため、 1226 00:59:09,250 --> 00:59:09,820 char *を。 1227 00:59:09,820 --> 00:59:10,930 1228 00:59:10,930 --> 00:59:12,340 >> だから、通過になるだろう。 1229 00:59:12,340 --> 00:59:13,290 これは、更新するために起こっている。 1230 00:59:13,290 --> 00:59:16,705 これが実行されますので、初めて、 それは時間でここになるだろう。 1231 00:59:16,705 --> 00:59:17,590 これは、更新するために起こっている。 1232 00:59:17,590 --> 00:59:18,185 >> それはAでしょう。 1233 00:59:18,185 --> 00:59:21,310 それはとても上などのp、yのこと、とあります。 1234 00:59:21,310 --> 00:59:22,300 我々はカウンターを更新します。 1235 00:59:22,300 --> 00:59:26,160 それが最後に到達すると、それ ちょうどそれが得だどこまで印刷されます。 1236 00:59:26,160 --> 00:59:27,550 1237 00:59:27,550 --> 00:59:28,050 はい。 1238 00:59:28,050 --> 00:59:31,475 >> 聴衆:だからそれはカウント 1としてのスペース、右? 1239 00:59:31,475 --> 00:59:31,974 [OK]をクリックします。 1240 00:59:31,974 --> 00:59:34,294 1241 00:59:34,294 --> 00:59:35,222 >> SPEAKER 1:そう思う。 1242 00:59:35,222 --> 00:59:36,830 question--ということです 1243 00:59:36,830 --> 00:59:37,746 >> 読者:[聞こえない]。 1244 00:59:37,746 --> 00:59:37,968 1245 00:59:37,968 --> 00:59:38,884 >> SPEAKER 1:いいえ心配。 1246 00:59:38,884 --> 00:59:39,720 1247 00:59:39,720 --> 00:59:42,736 これは、私はそれを行う。 1248 00:59:42,736 --> 00:59:47,710 すべての権利なので、一つのこと、私 理解してアレイを用いていることである、 1249 00:59:47,710 --> 00:59:51,736 あなたはまた、としてそれを扱うことができます ポインタの配列はただなので、 1250 00:59:51,736 --> 00:59:52,860 メモリの連続スポット。 1251 00:59:52,860 --> 00:59:53,970 1252 00:59:53,970 --> 00:59:56,380 >> だから、それを同じように扱うことができます。 1253 00:59:56,380 --> 00:59:59,000 あなたはそれらを操作することができます ポインタを持つ、あまりにも。 1254 00:59:59,000 --> 01:00:04,770 だからではなく、この中で、やって 場合、類似の事 1255 01:00:04,770 --> 01:00:07,490 アレイ0が1に等しいだろう。 1256 01:00:07,490 --> 01:00:08,760 1257 01:00:08,760 --> 01:00:15,210 >> しかし、同じようにその 文字列が決定される 1258 01:00:15,210 --> 01:00:18,740 の開始によって、 その最初の文字がある、 1259 01:00:18,740 --> 01:00:22,270 配列はによって決定されます ここで、その最初の要素がある。 1260 01:00:22,270 --> 01:00:25,120 私たちが知っているので、我々はしている 保証された、これらのことを 1261 01:00:25,120 --> 01:00:27,985 連続になるだろうしている メモリのブロック。 1262 01:00:27,985 --> 01:00:29,360 つまり、私たちはこれを行うことを可能にするものだ。 1263 01:00:29,360 --> 01:00:31,193 我々は、彼らが連続している知っている メモリのブロック。 1264 01:00:31,193 --> 01:00:32,230 1265 01:00:32,230 --> 01:00:36,500 >> だから、この場合には、逆参照することにより を教えてくれるだけで、アレイ、 1266 01:00:36,500 --> 01:00:40,800 [OK]を、開始に行く ここにあるあなたの配列。 1267 01:00:40,800 --> 01:00:42,640 だから、1にそれが等しくなるように設定することができます。 1268 01:00:42,640 --> 01:00:48,610 そして、この場合には、どのようなお使いのアレイ タイプは、1によってそれを更新するときに、ある、 1269 01:00:48,610 --> 01:00:50,830 それはちょうど更新のようなものだ それ次のインデックスへ。 1270 01:00:50,830 --> 01:00:52,760 1271 01:00:52,760 --> 01:00:56,360 あなたが行うことができますので、 お使いのアレイに何があるか知っている。 1272 01:00:56,360 --> 01:00:59,770 だから、どのくらいまで知っている あなたのポインタを更新することで、 1273 01:00:59,770 --> 01:01:02,925 どのアドレスそうにそれを更新するために あなたは次のスロットにいること。 1274 01:01:02,925 --> 01:01:04,740 1275 01:01:04,740 --> 01:01:09,400 >> だから、これは単に別の方法です の配列0が1に等しい書き込み、 1276 01:01:09,400 --> 01:01:15,114 アレイ1は2、配列に等しい ブラケット2は3に等しい。 1277 01:01:15,114 --> 01:01:16,780 それはそれについて考えるちょうど別の方法です。 1278 01:01:16,780 --> 01:01:19,600 彼らは連続しているので メモリ内のブロック、 1279 01:01:19,600 --> 01:01:21,830 あなたはどちらかそれらを参照することができます アレイによるnotation-- 1280 01:01:21,830 --> 01:01:24,390 これ個人的に私 easier--見つける多分 1281 01:01:24,390 --> 01:01:27,347 あなたはそれを操作する必要がある 厳密にメモリアドレスによって。 1282 01:01:27,347 --> 01:01:28,930 そして、これはあなたがそれを行うだろう方法です。 1283 01:01:28,930 --> 01:01:30,630 1284 01:01:30,630 --> 01:01:32,630 種類等のより あなたができるクールなもの 1285 01:01:32,630 --> 01:01:35,213 あなたがしているそうでないかもしれない何か対 実際に実装する予定。 1286 01:01:35,213 --> 01:01:36,960 1287 01:01:36,960 --> 01:01:38,630 >> 私は61でそれを使用しています。 1288 01:01:38,630 --> 01:01:41,710 君たちはおそらく必要はありません あまりそれを心配する。 1289 01:01:41,710 --> 01:01:43,693 しかし、もし興味があるなら、 来年61を取る。 1290 01:01:43,693 --> 01:01:45,269 1291 01:01:45,269 --> 01:01:46,560 我々は、ホームストレッチの連中にしている。 1292 01:01:46,560 --> 01:01:47,510 私が知っている、それは長いです。 1293 01:01:47,510 --> 01:01:50,570 1294 01:01:50,570 --> 01:01:58,880 動的メモリAllocation-- 私たちはそのいずれかを知っている 1295 01:01:58,880 --> 01:02:01,790 我々は中に話し物事の 一緒に私たちの最初のセクション、 1296 01:02:01,790 --> 01:02:04,560 我々はスワップを見て それがあった機能 1297 01:02:04,560 --> 01:02:08,010 私たちの主な機能の範囲外。 1298 01:02:08,010 --> 01:02:14,370 そして、我々は、これらの値を渡した それが効果的にコピーしていた。 1299 01:02:14,370 --> 01:02:20,570 >> 一度完成したスワップ 実行、それだけのスタックを残しました。 1300 01:02:20,570 --> 01:02:22,830 覚えておいて、私たちは持っている スワップ用のフレームをスタック。 1301 01:02:22,830 --> 01:02:26,070 それが出て、それらの 値がそれと一緒に出国。 1302 01:02:26,070 --> 01:02:27,050 そして、彼らはなくなっていた。 1303 01:02:27,050 --> 01:02:28,615 私たちは何もできなかった 彼らと私たちは悲しいでした 1304 01:02:28,615 --> 01:02:29,989 我々は値を交換することはできませんので。 1305 01:02:29,989 --> 01:02:31,070 1306 01:02:31,070 --> 01:02:36,560 >> しかし、私は、あなたを述べたように、C、と メモリ上に多くの電力を持っている。 1307 01:02:36,560 --> 01:02:43,310 だから、何ができるかのことができている ここでヒープ上に物事を割り当てる 1308 01:02:43,310 --> 01:02:46,830 それがされるまでそこに滞在します あなたがそうでなければ、それらを教えてください。 1309 01:02:46,830 --> 01:02:48,280 >> 彼らは良い子供のようだ。 1310 01:02:48,280 --> 01:02:49,150 彼らはそこに滞在。 1311 01:02:49,150 --> 01:02:50,270 彼らは放置しないでください。 1312 01:02:50,270 --> 01:02:52,750 あなたが整うまで、彼らはそこに滞在します のように、[OK]を、あなたは離れて行くことができます。 1313 01:02:52,750 --> 01:02:55,920 >> スタック上の物事のに対し、who-- 彼らはいたずらな子供のようだ。 1314 01:02:55,920 --> 01:02:59,160 お好きな時に彼らはただ逃げるよ そこに、その後、彼らは消えています。 1315 01:02:59,160 --> 01:03:00,160 あなたはそれらを取り戻すことはできません。 1316 01:03:00,160 --> 01:03:01,350 1317 01:03:01,350 --> 01:03:07,187 >> だから我々はするつもりだis--ヒープ これ、mallocとfreeの話 1318 01:03:07,187 --> 01:03:08,895 私はあなたたちと確信している 講演での話を聞いた。 1319 01:03:08,895 --> 01:03:10,270 1320 01:03:10,270 --> 01:03:14,210 そして、それは基本的には方法です 非常に永続的なデータを持っている。 1321 01:03:14,210 --> 01:03:18,920 だから、データを保持することができます 周りに限り、あなたが望むように。 1322 01:03:18,920 --> 01:03:19,546 MHM。 1323 01:03:19,546 --> 01:03:21,475 >> 読者:あなたは、ヒープを定義し、スタックすることはできますか? 1324 01:03:21,475 --> 01:03:24,030 彼らは物事を置くための場所が好きですか? 1325 01:03:24,030 --> 01:03:26,630 >> SPEAKER 1:だから、彼らはしている 基本的に彼らがしているjust-- 1326 01:03:26,630 --> 01:03:29,530 我々だけでメモリを参照する方法です。 1327 01:03:29,530 --> 01:03:37,300 だから、ヒープはちょうどどこ置きされている メモリが動的に割り当てられ、 1328 01:03:37,300 --> 01:03:40,960 スタックが指し、一方、 スタックフレームより 1329 01:03:40,960 --> 01:03:45,950 より中心であること 実際に実行されている機能。 1330 01:03:45,950 --> 01:03:47,200 あなたは本当にコントロールを持っていません。 1331 01:03:47,200 --> 01:03:50,690 >> 大きな違いは、あなたがコントロールを持って あなたがしたい場合は、ヒープオーバー。 1332 01:03:50,690 --> 01:03:52,710 あなたは、スタック上で少なく制御することができます。 1333 01:03:52,710 --> 01:03:55,030 スタックに依存 実行されている機能は、 1334 01:03:55,030 --> 01:03:58,320 そして順序は、それらは 実行して、物事がどのように返されます。 1335 01:03:58,320 --> 01:04:01,290 ヒープを持つのに対し、として 私たちは、あなたが言うことができ、表示されます 1336 01:04:01,290 --> 01:04:06,639 [OK]を、私は、この値になりたい 周りにまで、私はそうでないことを伝える。 1337 01:04:06,639 --> 01:04:08,180 あなたがそれを取り除くために許可されていません。 1338 01:04:08,180 --> 01:04:09,300 あなたはそれを上書きすることができていない。 1339 01:04:09,300 --> 01:04:11,675 あなたの周りそれを維持するつもりだ 限り、私はあなたを伝えるようにするため。 1340 01:04:11,675 --> 01:04:15,780 あなたは、ヒープ内のボスであることを得る stack--一方、多分あなたなら 1341 01:04:15,780 --> 01:04:18,080 のようなあなたのようにfinagle あなたが上司であることができる。 1342 01:04:18,080 --> 01:04:19,340 しかしかなり。 1343 01:04:19,340 --> 01:04:20,480 1344 01:04:20,480 --> 01:04:22,070 そして、それは本当にただのメモリです。 1345 01:04:22,070 --> 01:04:24,260 それはちょうど、異なる方法だ メモリを参照する。 1346 01:04:24,260 --> 01:04:25,800 1347 01:04:25,800 --> 01:04:26,400 >> 涼しい。 1348 01:04:26,400 --> 01:04:28,630 それとだから、どのように あなたの記憶を制御します。 1349 01:04:28,630 --> 01:04:32,070 それは、malloc関数とそのだ あなたが使用するために取得するつもりだ。 1350 01:04:32,070 --> 01:04:37,100 だから、それだけで短いです メモリ割り当てのために。 1351 01:04:37,100 --> 01:04:38,459 つまり、それがすべてです。 1352 01:04:38,459 --> 01:04:41,250 他のクールの束があります 最後にはallocを持つ関数、 1353 01:04:41,250 --> 01:04:42,750 そしてそれらは異なるもののために立っている。 1354 01:04:42,750 --> 01:04:43,550 1355 01:04:43,550 --> 01:04:49,050 >> だから、あなたが必要とするストレージを必要とするとき ので、あなたの現在の機能を長持ちする 1356 01:04:49,050 --> 01:04:51,010 時現在のもの この関数は、逃げる 1357 01:04:51,010 --> 01:04:55,774 あなたはまだあなたのデータを持っている あなたはmalloc関数を使用したい、そこから得た。 1358 01:04:55,774 --> 01:04:57,190 つまり、ヒープ上でそれを初期化します。 1359 01:04:57,190 --> 01:05:00,140 等を私は言ったとキープ と言って、あなたはそれをそこにしておこう 1360 01:05:00,140 --> 01:05:03,050 あなたがそうでなければ、それを指示するまで、 それここで重要なことです。 1361 01:05:03,050 --> 01:05:08,450 >> だから、一つのことに気づく、とする それは、典型的には、本当に重要です 1362 01:05:08,450 --> 01:05:13,620 これははsizeofということです 使用する超便利です 1363 01:05:13,620 --> 01:05:16,440 タイプに応じため 機械のあなたが実行している、 1364 01:05:16,440 --> 01:05:22,470 それは、様々な量を有することができる それが取るのメモリ。 1365 01:05:22,470 --> 01:05:26,870 だから、いつものサイズを使用したい あなたがマシン依存じゃないこと、 1366 01:05:26,870 --> 01:05:30,300 そのため、あなたのコードでしょう 任意のマシン上で実行する。 1367 01:05:30,300 --> 01:05:32,360 >> そして、それはほんの一部だ 良いコードを書く。 1368 01:05:32,360 --> 01:05:34,610 それは一台のマシン上で動作する場合、 他のものではなく、任意の、 1369 01:05:34,610 --> 01:05:36,440 あなたのプログラムはどのように役立ちました? 1370 01:05:36,440 --> 01:05:38,420 だから、あなたは常にしたい 確認してくださいとはsizeofを使用しています。 1371 01:05:38,420 --> 01:05:41,306 >> 聴衆:だから、のようなものです 10インチのサイズ[聞こえない]? 1372 01:05:41,306 --> 01:05:43,698 >> SPEAKER 1:これは10 intのサイズです。 1373 01:05:43,698 --> 01:05:44,197 うん。 1374 01:05:44,197 --> 01:05:45,360 1375 01:05:45,360 --> 01:05:48,830 だから、intのサイズが返されます 1 INTはどのくらいかかりますか。 1376 01:05:48,830 --> 01:05:51,530 またはcharのサイズは、どのように 多くは1 char型のテイクを行います。 1377 01:05:51,530 --> 01:05:54,150 その後どのように多くのブロック そのことをあなたがしたいですか? 1378 01:05:54,150 --> 01:05:57,590 >> したがって、この場合には、何かをしたい 私たちは10整数を格納できること。 1379 01:05:57,590 --> 01:06:00,240 そして、それは関係なく動作します クールです機械の。 1380 01:06:00,240 --> 01:06:01,720 1381 01:06:01,720 --> 01:06:04,846 だから、何バイトでしょう それは実際にあなたを与える? 1382 01:06:04,846 --> 01:06:06,190 クイック数学。 1383 01:06:06,190 --> 01:06:06,787 >> 聴衆:40。 1384 01:06:06,787 --> 01:06:07,370 SPEAKER 1:40。 1385 01:06:07,370 --> 01:06:07,869 正確に。 1386 01:06:07,869 --> 01:06:09,520 1387 01:06:09,520 --> 01:06:12,030 だから、別の大きなもの。 1388 01:06:12,030 --> 01:06:14,840 ポインタやmalloc関数はnullを返すことができます。 1389 01:06:14,840 --> 01:06:17,910 >> だからもう一度、いつもにチェック それがnullを返したかどうかを確認 1390 01:06:17,910 --> 01:06:19,620 あなたは試してみて、それで何かを行う前に。 1391 01:06:19,620 --> 01:06:23,430 1392 01:06:23,430 --> 01:06:27,350 あなたは試してみて、間接参照した場合 今、このポインタは、 1393 01:06:27,350 --> 01:06:29,720 それだけでセグメンテーションフォールトになるだろう あなたが行ってみましたので、 1394 01:06:29,720 --> 01:06:31,730 あなたが持っているべきではないときはnullタッチします。 1395 01:06:31,730 --> 01:06:34,000 だから、常にnullをチェック。 1396 01:06:34,000 --> 01:06:36,075 ここでも、すべてあなたが行うことができます。 1397 01:06:36,075 --> 01:06:38,300 1398 01:06:38,300 --> 01:06:39,720 >> これは、nullを返すことがあります。 1399 01:06:39,720 --> 01:06:42,740 あなたはどちらかなら、それはnullを返します 宇宙の外、または何らかの理由で 1400 01:06:42,740 --> 01:06:44,350 それはいくつかのメモリのバグに遭遇した。 1401 01:06:44,350 --> 01:06:45,890 1402 01:06:45,890 --> 01:06:47,510 それは時々ちょうどnullを返します。 1403 01:06:47,510 --> 01:06:48,990 だから、あなたはそれをチェックする必要があります。 1404 01:06:48,990 --> 01:06:51,050 つまり、すべてのこのスライドが言っているのです。 1405 01:06:51,050 --> 01:06:53,366 1406 01:06:53,366 --> 01:06:55,240 そして、我々が持っているもの ここに自由への呼び出しがある。 1407 01:06:55,240 --> 01:07:00,550 だから、同じようにあなたの場合、その あなたがファイルを閉じる必要がありますファイルを開き、 1408 01:07:00,550 --> 01:07:04,340 あなたのmallocメモリであれば、あなた あなたはそのメモリを解放しなければなりません。 1409 01:07:04,340 --> 01:07:06,530 そして君たちは取得します 本当にクールなものを行うため。 1410 01:07:06,530 --> 01:07:09,624 >> そして、あなたがに実行できるプログラムがあります あなたが今までメモリをリークしているかどうかを確認します。 1411 01:07:09,624 --> 01:07:11,040 しかし、あなたはメモリリークが発生する必要はありません。 1412 01:07:11,040 --> 01:07:11,820 それは本当に残念だ。 1413 01:07:11,820 --> 01:07:13,191 1414 01:07:13,191 --> 01:07:15,020 ちょうど台無しに物事。 1415 01:07:15,020 --> 01:07:20,939 >> それはちょうど、プログラミングのように行うことが残念だ 設計効率のための賢明な。 1416 01:07:20,939 --> 01:07:22,980 しかし、それはまた、単にようなものだ お使いのコンピュータのための悪い。 1417 01:07:22,980 --> 01:07:26,780 だから自由に物事 あなたはそれらををmallocとき。 1418 01:07:26,780 --> 01:07:28,190 1419 01:07:28,190 --> 01:07:30,210 >> 君たちはここに対称性を参照してください。 1420 01:07:30,210 --> 01:07:31,180 スーパーシンプル。 1421 01:07:31,180 --> 01:07:33,010 それからちょうど自由 どのようなあなたのポインタ、 1422 01:07:33,010 --> 01:07:34,843 どのような名前の あなたのポインタがあり、それ 1423 01:07:34,843 --> 01:07:36,710 あなたのためにそれを解放するの世話をします。 1424 01:07:36,710 --> 01:07:38,200 1425 01:07:38,200 --> 01:07:38,700 涼しい。 1426 01:07:38,700 --> 01:07:40,410 1427 01:07:40,410 --> 01:07:42,530 >> その後、我々はこれを持っている。 1428 01:07:42,530 --> 01:07:44,770 だから我々はちょうどするつもりだ このプログラムの中を歩く。 1429 01:07:44,770 --> 01:07:46,560 その後君たちが行われている。 1430 01:07:46,560 --> 01:07:50,240 >> だから、[聞こえない]ちょうどメイン。 1431 01:07:50,240 --> 01:07:51,690 だから我々はいくつかのint型*ポイン​​タを持っている。 1432 01:07:51,690 --> 01:07:53,648 だから我々は、ポインタを持っている それはint型を保持するために起こっている。 1433 01:07:53,648 --> 01:07:54,500 1434 01:07:54,500 --> 01:07:56,170 そして、どのように多くのintそれが保持​​するために起こっている? 1435 01:07:56,170 --> 01:07:57,400 1436 01:07:57,400 --> 01:07:58,170 ちょうど1。 1437 01:07:58,170 --> 01:07:59,400 1438 01:07:59,400 --> 01:08:01,100 int型のサイズ。 1439 01:08:01,100 --> 01:08:03,900 >> 私たちは、かどうかを確認してください ポインタがnullであるため 1440 01:08:03,900 --> 01:08:06,130 我々は何もしないと言いたいです。 1441 01:08:06,130 --> 01:08:07,065 それは悪いです。 1442 01:08:07,065 --> 01:08:08,130 1443 01:08:08,130 --> 01:08:12,130 だから我々は外にいくつかのエラーを印刷する メモリ、最も頻繁に1が返さ 1444 01:08:12,130 --> 01:08:14,260 君たちと使用されている。 1445 01:08:14,260 --> 01:08:17,390 >> そして、我々は、我々は、ここにある 私たちのポインタを間接参照。 1446 01:08:17,390 --> 01:08:22,840 だから、私たちが保存するつもりだ意味 私たちに与えられた場所で何か。 1447 01:08:22,840 --> 01:08:24,350 1448 01:08:24,350 --> 01:08:30,830 int型*ポイン​​タ、malloc関数、返す それがこれを取っておく場所のアドレス 1449 01:08:30,830 --> 01:08:31,750 あなたのためのメモリ。 1450 01:08:31,750 --> 01:08:32,830 1451 01:08:32,830 --> 01:08:34,800 だから、基本的にはだ あなたがいる場合like--与える 1452 01:08:34,800 --> 01:08:38,149 の束を考える 近所の住宅 1453 01:08:38,149 --> 01:08:40,640 あなたが入れたいこと malloc関数、であなたの家具 1454 01:08:40,640 --> 01:08:43,850 OKのようなものです、あなたが得る 家3に移動します。 1455 01:08:43,850 --> 01:08:45,800 そして、それはあなたができます 家3のアドレス。 1456 01:08:45,800 --> 01:08:48,775 >> だから、この、今、この ポインタはアドレスを格納する、 1457 01:08:48,775 --> 01:08:50,149 あなたの家のアドレスを格納する。 1458 01:08:50,149 --> 01:08:51,470 1459 01:08:51,470 --> 01:08:54,640 * PTR手段、[OK]を、私は自分の家にいる。 1460 01:08:54,640 --> 01:08:55,326 涼しい。 1461 01:08:55,326 --> 01:08:56,580 私はいくつかの整数を取得する必要があります。 1462 01:08:56,580 --> 01:08:59,229 >> だから、誰かのために求めている 今、あなたの家具を得た。 1463 01:08:59,229 --> 01:09:00,430 だから、いくつかのint型を取得します。 1464 01:09:00,430 --> 01:09:05,100 そして、それはあなたのポインタに入れます それはどこを指しています。 1465 01:09:05,100 --> 01:09:08,670 >> そして、それだけでプリント アウト、あなたがどこに入った。 1466 01:09:08,670 --> 01:09:11,060 そして再び、参照。 1467 01:09:11,060 --> 01:09:15,649 だから、これはあなたがこのに行ってきましたようなものです アドレスとあなたがそこにあったものを見た。 1468 01:09:15,649 --> 01:09:17,120 1469 01:09:17,120 --> 01:09:17,630 クール? 1470 01:09:17,630 --> 01:09:20,174 >> そしてもちろん、私たちは私たちのポインタを解放します。 1471 01:09:20,174 --> 01:09:21,590 あなたのポインタを解放することを忘れないでください。 1472 01:09:21,590 --> 01:09:22,933 ヌルをチェックすることを忘れないでください。 1473 01:09:22,933 --> 01:09:24,349 あなたのポインタを解放することを忘れないでください。 1474 01:09:24,349 --> 01:09:27,270 あなたは覚えているから二つのことを持っている これは、またはあなたが覚えておくべきこと。 1475 01:09:27,270 --> 01:09:27,770 はい。 1476 01:09:27,770 --> 01:09:31,590 読者:[聞こえない]のもの そのような、のchar * sを。 1477 01:09:31,590 --> 01:09:33,760 どのように我々は、これらの自由は決して来ない? 1478 01:09:33,760 --> 01:09:34,529 >> SPEAKER 1:フム? 1479 01:09:34,529 --> 01:09:36,450 >> 読者:文字列のようなものがありますか? 1480 01:09:36,450 --> 01:09:39,160 あなたが文字列であると述べ ただのchar * sのような、右? 1481 01:09:39,160 --> 01:09:41,200 では、なぜ私たちは、文字列を解放しませんか? 1482 01:09:41,200 --> 01:09:43,204 >> SPEAKER 1:あなただけへ 自由なあなたがmallocingしている場合。 1483 01:09:43,204 --> 01:09:44,620 聴衆:ああ、あなたがmallocingしている場合。 1484 01:09:44,620 --> 01:09:47,399 SPEAKER 1:だからのmalloc そして自由な、2つのことである 1485 01:09:47,399 --> 01:09:49,000 あなたはいつも一緒に持っているべきであること。 1486 01:09:49,000 --> 01:09:51,630 fはオープンで、f近い、二つのこと あなたが一緒に持っている必要があります。 1487 01:09:51,630 --> 01:09:54,471 両方のこれらのケースでは、nullかどうかを確認します。 1488 01:09:54,471 --> 01:09:54,971 はい。 1489 01:09:54,971 --> 01:09:57,130 >> 聴衆:だから自由はただである 何か他のものを許可する 1490 01:09:57,130 --> 01:09:59,690 後にそこに格納される このプログラムは、それを使用しています? 1491 01:09:59,690 --> 01:10:01,946 >> SPEAKER 1:それはちょうど言って、 [OK]を、私はこれで終わりだ。 1492 01:10:01,946 --> 01:10:03,320 あなたはそれを周りに維持する必要はありません。 1493 01:10:03,320 --> 01:10:05,340 1494 01:10:05,340 --> 01:10:08,190 そうでない場合は、お使いのコンピュータの意志 ちょうどそこにそれを試しておくのが好きです。 1495 01:10:08,190 --> 01:10:10,910 そして、あなたはそれが実行can't-- 後でメモリの問題に。 1496 01:10:10,910 --> 01:10:13,660 あなたは、常にので、それを解放したい それは[OK]を、私は、お使いのコンピュータに伝えます 1497 01:10:13,660 --> 01:10:15,190 このメモリのスポットで行わ。 1498 01:10:15,190 --> 01:10:17,190 あなたはそれを後ろ持つことができます 私のために後で使用します。 1499 01:10:17,190 --> 01:10:19,250 1500 01:10:19,250 --> 01:10:20,500 クール? 1501 01:10:20,500 --> 01:10:21,320 はい。 1502 01:10:21,320 --> 01:10:26,950 >> 読者:だから我々はちょうど%dを使用 、戻って来て、二重理由 1503 01:10:26,950 --> 01:10:28,330 または、なぜ[聞こえない] is--。 1504 01:10:28,330 --> 01:10:30,170 1505 01:10:30,170 --> 01:10:31,620 >> 読者:あなたは私は%を使用できますか? 1506 01:10:31,620 --> 01:10:32,760 >> SPEAKER 1:あなたは%iを使用することができます。 1507 01:10:32,760 --> 01:10:35,052 1508 01:10:35,052 --> 01:10:36,135 でも直前の質問? 1509 01:10:36,135 --> 01:10:38,310 1510 01:10:38,310 --> 01:10:38,985 先に行く。 1511 01:10:38,985 --> 01:10:40,610 読者:私はちょうど簡単な質問を持っている。 1512 01:10:40,610 --> 01:10:50,200 だから、PTR変数、that's-- のように、int型* ptrは=のmallocと、 1513 01:10:50,200 --> 01:10:54,142 それはちょうどそれがだと言っています memory--内の場所を指し示す 1514 01:10:54,142 --> 01:10:55,600 SPEAKER 1:あなたは[聞こえない]たいですか? 1515 01:10:55,600 --> 01:10:58,050 読者:--thatはだ サイズはof--いや、それはOKです。 1516 01:10:58,050 --> 01:11:01,292 しかし、それは単に内の場所を指しています わずか4バイトのようなものだメモリ。 1517 01:11:01,292 --> 01:11:02,000 SPEAKER 1:右。 1518 01:11:02,000 --> 01:11:03,030 1519 01:11:03,030 --> 01:11:07,070 だから、int型の大きさは言うをmalloc [OK]を、私はオフに実行に行くつもりです、 1520 01:11:07,070 --> 01:11:08,780 あなたのための4バイトのメモリを見つける。 1521 01:11:08,780 --> 01:11:10,700 それはその4を見つけると メモリのバイト、それは 1522 01:11:10,700 --> 01:11:14,030 あなたの住所をバック与える それが始まるところの、 1523 01:11:14,030 --> 01:11:16,160 それが格納されているものだ ポインタ、またはPTRで。 1524 01:11:16,160 --> 01:11:17,510 1525 01:11:17,510 --> 01:11:18,010 グッド。 1526 01:11:18,010 --> 01:11:18,742 1527 01:11:18,742 --> 01:11:21,700 君たちは、ほとんど未満の困惑した表情 私はポインタの話人々、 1528 01:11:21,700 --> 01:11:23,670 ので、私は今、かなり良い感じている。 1529 01:11:23,670 --> 01:11:24,520 >> わかりました。 1530 01:11:24,520 --> 01:11:27,960 いつものように、あなたたちはすべてを持っている必要があります 今ではあなたのpset2グレードを頂いております。 1531 01:11:27,960 --> 01:11:32,769 私が知っているいくつかのグラグラがなされている それは式が有効ではない、と言う事 1532 01:11:32,769 --> 01:11:33,310 か何か。 1533 01:11:33,310 --> 01:11:36,166 あなたは、ことのすべてを取得している場合 あなたの成績は私の側に有効です。 1534 01:11:36,166 --> 01:11:38,040 だから私はあなたを送信することができます あなたの等級のスクリーンショット。 1535 01:11:38,040 --> 01:11:39,011 1536 01:11:39,011 --> 01:11:41,760 ちょうど私が同様にあなたがしているかどうかを知りましょう どのグレードか何かが足りない 1537 01:11:41,760 --> 01:11:43,060 意味をなさないしていないようです。 1538 01:11:43,060 --> 01:11:43,720 私に来る。 1539 01:11:43,720 --> 01:11:44,830 1540 01:11:44,830 --> 01:11:48,830 >> 私はあなたのスーパー誇りにしてきた 連中はすでにので、それを維持する。 1541 01:11:48,830 --> 01:11:50,640 そして、あなたの週の十分に休息を持っている。 1542 01:11:50,640 --> 01:11:53,440 私はいくつかを見るだろうと確信して あなたのオフィスの時間で。 1543 01:11:53,440 --> 01:11:55,414