1 00:00:00,000 --> 00:00:03,388 >> [音楽再生] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 DOUG LLOYD:すべての権利。 4 00:00:06,020 --> 00:00:07,680 シングルでの作業 変数はかなり楽しいです。 5 00:00:07,680 --> 00:00:09,500 しかし、私たちが仕事をしたい場合はどう 多くの変数と、 6 00:00:09,500 --> 00:00:12,760 しかし、我々はの束を持っている必要はありません 私たちのコードの周りを飛んで別の名前? 7 00:00:12,760 --> 00:00:15,980 この場合、配列です 本当に便利で来るつもり。 8 00:00:15,980 --> 00:00:19,510 配列は本当に基本的なデータであり、 任意のプログラミング言語のための構造 9 00:00:19,510 --> 00:00:20,260 あなたが使用すること。 10 00:00:20,260 --> 00:00:24,450 そして、彼らは、本当に、本当に便利です 特に、我々は、CS 50で、表示されますよう。 11 00:00:24,450 --> 00:00:27,870 >> 私たちは、保持するための配列を使用 同じデータ型の値 12 00:00:27,870 --> 00:00:29,830 連続したメモリの場所で。 13 00:00:29,830 --> 00:00:32,430 それはそれはだ、と言うことです 方法私達はグループのことが可能 14 00:00:32,430 --> 00:00:35,430 一緒の整数の束 メモリや文字の束 15 00:00:35,430 --> 00:00:38,270 または実際にメモリに浮かびます 一緒に閉じて作業 16 00:00:38,270 --> 00:00:41,930 彼らとそれぞれを与えることなく、 1独自の名前、することができます 17 00:00:41,930 --> 00:00:44,500 しばらく後に面倒な取得。 18 00:00:44,500 --> 00:00:48,130 >> 今、一つの方法は、配列を類推します お近くのポストについて考えることです 19 00:00:48,130 --> 00:00:49,000 秒事務所。 20 00:00:49,000 --> 00:00:51,820 だから、プログラミングから離れます ちょうどあなたの目を閉じて 21 00:00:51,820 --> 00:00:54,120 そして、心の中で可視化 お近くの郵便局。 22 00:00:54,120 --> 00:00:57,160 通常、ほとんどのポストで オフィス、大手銀行があります 23 00:00:57,160 --> 00:01:00,490 壁に郵便局ボックス。 24 00:01:00,490 --> 00:01:03,510 >> アレイは、巨大なブロックであり、 連続したメモリ、 25 00:01:03,510 --> 00:01:06,120 メールと同じ方法 あなたの郵便局の銀行 26 00:01:06,120 --> 00:01:11,230 上に大きなスペースです 郵便局の壁。 27 00:01:11,230 --> 00:01:15,750 アレイは、小型に分割されており、 スペースの同じサイズのブロック、 28 00:01:15,750 --> 00:01:19,930 それらの各々はで、要素と呼ばれ 同じようにポストの壁こと 29 00:01:19,930 --> 00:01:23,840 事務所は小規模に分割されています、 スペースの同じサイズのブロック、 30 00:01:23,840 --> 00:01:27,560 これは我々が私書箱を呼び出します。 31 00:01:27,560 --> 00:01:31,650 配列の各要素缶 、一定量のデータを格納します 32 00:01:31,650 --> 00:01:37,540 各私書箱は可能であると同じように メールの一定量を保持します。 33 00:01:37,540 --> 00:01:41,540 >> の各要素に格納することができるもの 配列は、同じデータの変数であります 34 00:01:41,540 --> 00:01:45,300 intやcharと種類、ちょうど あなたの私書箱のように、 35 00:01:45,300 --> 00:01:47,300 あなただけのものに合うことができます 同様のタイプの、 36 00:01:47,300 --> 00:01:50,430 そのような文字や小型パッケージなど。 37 00:01:50,430 --> 00:01:55,050 最後に、それぞれの要素にアクセスすることができます 直接インデックス番号によって配列、 38 00:01:55,050 --> 00:01:59,770 私たちは郵便局にアクセスすることができます同じように そのメールボックス番号を知ることによってボックス。 39 00:01:59,770 --> 00:02:02,750 うまくいけば、そのアナロジー あなたの頭を得ることができます 40 00:02:02,750 --> 00:02:05,540 配列のアイデアで約 何か他のものに類推 41 00:02:05,540 --> 00:02:08,400 あなたはおそらくしていること ですでにおなじみ。 42 00:02:08,400 --> 00:02:13,182 >> Cでは、配列の要素があります 1からではなく、0から始まるインデックスが付け。 43 00:02:13,182 --> 00:02:14,390 そして、これは本当に重要です。 44 00:02:14,390 --> 00:02:18,530 なぜ実際に、これはCS 50であり、 頻繁に、なぜコンピュータ科学者 45 00:02:18,530 --> 00:02:22,150 0からカウントされ、あります なぜなら、Cの配列の 46 00:02:22,150 --> 00:02:24,660 常に0から始まりインデックス作成、。 47 00:02:24,660 --> 00:02:28,730 だから、配列は、n個の要素で構成されている場合、 その配列の最初の要素 48 00:02:28,730 --> 00:02:32,960 インデックス0に位置し、 配列の最後の要素 49 00:02:32,960 --> 00:02:36,610 インデックスn -1に位置しています。 50 00:02:36,610 --> 00:02:43,160 ここでも、中のn個の要素があるのなら、私たち 配列は、最後のインデックスは、nマイナス1です。 51 00:02:43,160 --> 00:02:46,820 >> だから、私たちの配列には50の要素、持っている場合 最初の要素はインデックス0に配置され、 52 00:02:46,820 --> 00:02:51,060 最後の要素 インデックス49に位置しています。 53 00:02:51,060 --> 00:02:53,940 残念ながら、あるいは幸いにも、 あなたの視点に応じて、 54 00:02:53,940 --> 00:02:56,170 Cはここで非常に寛大です。 55 00:02:56,170 --> 00:02:59,480 それはからあなたを防ぐことはできません あなたの配列の範囲外に行きます。 56 00:02:59,480 --> 00:03:03,080 あなたはマイナスにアクセスすることができました あなたの配列の3要素 57 00:03:03,080 --> 00:03:07,400 または、アレイの第59要素、 あなたの配列はわずか50要素を持っている場合。 58 00:03:07,400 --> 00:03:11,060 それから、あなたのプログラムを停止することはありません コンパイルが、実行時には、 59 00:03:11,060 --> 00:03:14,350 あなたが発生する可能性があります 恐ろしいセグメンテーションフォールト 60 00:03:14,350 --> 00:03:17,460 あなたは、メモリにアクセスするために開始した場合 それは何の境界外です 61 00:03:17,460 --> 00:03:19,260 あなたはあなたを与えるためにあなたのプログラムを尋ねました。 62 00:03:19,260 --> 00:03:21,250 だから注意してください。 63 00:03:21,250 --> 00:03:23,120 >> 何配列を行います 宣言のように見えますか? 64 00:03:23,120 --> 00:03:26,940 我々は存在するように、配列をコード化するにはどうすればよいです 私たちは他の変数をコーディングするような? 65 00:03:26,940 --> 00:03:31,250 配列への3つの部分があります。 タイプ、名前を、declaration-- 66 00:03:31,250 --> 00:03:31,880 サイズ。 67 00:03:31,880 --> 00:03:34,088 これは、と非常によく似ています 変数宣言、これ 68 00:03:34,088 --> 00:03:36,970 ちょうどタイプと名前です、 サイズ素子であります 69 00:03:36,970 --> 00:03:39,860 アレイ用の特殊な場合、 我々はそれらの束を取得しているため、 70 00:03:39,860 --> 00:03:41,830 同時に。 71 00:03:41,830 --> 00:03:45,560 >> だから、型は変数の種類があります 配列の各要素になりたいです。 72 00:03:45,560 --> 00:03:47,150 整数の配列にそれをしますか? 73 00:03:47,150 --> 00:03:49,010 次に、あなたのデータ型はint型でなければなりません。 74 00:03:49,010 --> 00:03:51,760 あなたはそれになりたいですか ダブルスまたはfloatの配列? 75 00:03:51,760 --> 00:03:54,545 データ型はdoubleまたはfloat型でなければなりません。 76 00:03:54,545 --> 00:03:56,420 名前は何です あなたの配列を呼び出したいです。 77 00:03:56,420 --> 00:04:00,970 あなたはこの巨大な名前を付けるために何をしたいです 整数や浮動小数点数または文字の銀行 78 00:04:00,970 --> 00:04:03,250 またはダブルス、または任意のあなたがありますか? 79 00:04:03,250 --> 00:04:04,700 あなたはそれを呼び出すために何をしたいですか? 80 00:04:04,700 --> 00:04:06,110 かなり自明。 81 00:04:06,110 --> 00:04:08,610 >> 最後に進み、サイズ、 角括弧の内側に、 82 00:04:08,610 --> 00:04:12,180 どのように多くの要素あなたが希望です あなたの配列が含まれているのが好きです。 83 00:04:12,180 --> 00:04:13,530 あなたはどのように多くの整数をしたいですか? 84 00:04:13,530 --> 00:04:15,570 あなたはどのように多くの山車をしたいですか? 85 00:04:15,570 --> 00:04:19,070 >> したがって、たとえば、学生の成績40をint型。 86 00:04:19,070 --> 00:04:26,020 これは、学生と呼ばれる配列を宣言します 40の整数で構成されてグレード。 87 00:04:26,020 --> 00:04:28,180 かなり自明、私は願っています。 88 00:04:28,180 --> 00:04:29,330 ここでもう一つの例です。 89 00:04:29,330 --> 00:04:31,560 ダブルメニュー価格8。 90 00:04:31,560 --> 00:04:34,610 これは、という配​​列を作成します。 構成され、メニューの価格は、 91 00:04:34,610 --> 00:04:38,300 8ダブルス用のメモリに余裕の。 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> あなたはすべての要素を考える場合 型のデータ型の配列の、 94 00:04:45,750 --> 00:04:49,860 そのようにする、例えば、単一の要素 int型の配列、同じようにあなた 95 00:04:49,860 --> 00:04:52,770 他のを思うだろう int型の変数、 96 00:04:52,770 --> 00:04:56,440 その我々はすべておなじみの操作 オペレーションで前に述べました 97 00:04:56,440 --> 00:04:58,270 ビデオは意味を行います。 98 00:04:58,270 --> 00:05:01,620 そこでここでは、我々は配列を宣言できました Truthtableと呼ばれるブール値の、 99 00:05:01,620 --> 00:05:05,590 これは10ブール値のための部屋で構成されています。 100 00:05:05,590 --> 00:05:09,650 >> そして、ちょうど我々だけ割り当てることができますが好き タイプの他の変数に値 101 00:05:09,650 --> 00:05:13,470 ブール、我々は何かを言うことができます Truthtable角括弧のような 102 00:05:13,470 --> 00:05:18,040 我々は示している方法である2、 その真理値表の要素? 103 00:05:18,040 --> 00:05:20,350 の3番目の要素 真理値表、覚えているので、 104 00:05:20,350 --> 00:05:21,800 我々は0からカウントしています。 105 00:05:21,800 --> 00:05:25,690 だから、私たちが示す方法です 真理値表の3番目の要素。 106 00:05:25,690 --> 00:05:28,680 Truthtable 2は、偽等しいです 我々はdeclare--可能性と同じように 107 00:05:28,680 --> 00:05:33,560 または私達は、むしろ、いずれかを割り当てることができ ブール型変数にはfalseになります。 108 00:05:33,560 --> 00:05:35,050 >> また、条件で使用することができます。 109 00:05:35,050 --> 00:05:39,000 (truthtable 7 ==場合 言うことです真)、 110 00:05:39,000 --> 00:05:42,370 第8要素の場合 Truthtableの真です、 111 00:05:42,370 --> 00:05:46,760 多分私達は、メッセージを印刷したいです ユーザーに、printfの( "TRUE!N");. 112 00:05:46,760 --> 00:05:50,290 それはTruthtableを言うために私たちを引き起こします 10は右、真等しいですか? 113 00:05:50,290 --> 00:05:53,590 まあ、私はできますが、それはかなりです 危険な、覚えているので、 114 00:05:53,590 --> 00:05:56,260 私たちは10ブール値の配列を持っています。 115 00:05:56,260 --> 00:06:02,340 だから、最高の索引その コンパイラは、私たちは9で与えています。 116 00:06:02,340 --> 00:06:06,010 >> このプログラムはコンパイルしますが、 メモリ内の何か他のものであれば 117 00:06:06,010 --> 00:06:09,110 ここで、私たちは希望が存在します Truthtable 10が行くことを期待し、 118 00:06:09,110 --> 00:06:13,980 私たちは、セグメンテーションフォールトを被る可能性があります。我々 それに逃げるかもしれないが、一般的には、 119 00:06:13,980 --> 00:06:14,710 かなり危険。 120 00:06:14,710 --> 00:06:19,759 だから私はここでやっていることは法律上のCです、 必ずしもそうではないが最善手。 121 00:06:19,759 --> 00:06:22,300 さて、あなたが宣言するときと 同時に配列を初期化、 122 00:06:22,300 --> 00:06:23,960 実際にはかなりあります そのあなたの特別な構文 123 00:06:23,960 --> 00:06:26,250 配列を埋めるために使用することができます その開始値を持ちます。 124 00:06:26,250 --> 00:06:30,130 これは面倒に得ることができます サイズ100の配列を宣言し、 125 00:06:30,130 --> 00:06:33,430 し、その後、要素0を言わなければなりません これに等しいです。要素1は、この等しいです。 126 00:06:33,430 --> 00:06:34,850 要素2は、に等しいです。 127 00:06:34,850 --> 00:06:36,370 右のポイントは何ですか? 128 00:06:36,370 --> 00:06:39,470 >> それは小さな配列の場合、 このような何かを行うことができます。 129 00:06:39,470 --> 00:06:44,360 ブールtruthtable 3が開いているに等しいです その後、中括弧とコンマ 130 00:06:44,360 --> 00:06:48,060 要素のリストを区切ります あなたは配列に入れたいということ。 131 00:06:48,060 --> 00:06:50,520 そして、中括弧セミコロンを閉じます。 132 00:06:50,520 --> 00:06:53,910 これは、の配列を作成 サイズTruthtableと呼ばれる3つの、 133 00:06:53,910 --> 00:06:56,090 、偽真、真の要素を持ちます。 134 00:06:56,090 --> 00:06:59,270 そして、実際には、インスタンス化 私がここに持っている構文は次のとおりです。 135 00:06:59,270 --> 00:07:03,350 やっと全く同じ 以下の個々の要素の構文。 136 00:07:03,350 --> 00:07:09,380 コー​​ディングのこれらの二つの方法でしょう 正確に同じ配列を生成します。 137 00:07:09,380 --> 00:07:11,740 >> 同様に、私達は繰り返すことができ すべての要素の上に 138 00:07:11,740 --> 00:07:15,400 ループを使用して、配列、中の 実際、非常に強くお勧めします 139 00:07:15,400 --> 00:07:16,790 在宅運動。 140 00:07:16,790 --> 00:07:20,720 どのように配列を作成するのですか 100の整数、の 141 00:07:20,720 --> 00:07:23,477 配列の各要素は、そのインデックスのですか? 142 00:07:23,477 --> 00:07:26,560 したがって、たとえば、私たちは100の配列を持っています 整数、最初の要素で、 143 00:07:26,560 --> 00:07:27,790 我々は0を入れたいです。 144 00:07:27,790 --> 00:07:29,810 二番目の要素では、1を入れたいです。 145 00:07:29,810 --> 00:07:33,319 第三の要素では、我々はしたいです 2を入れて、などのように。 146 00:07:33,319 --> 00:07:35,360 それは本当に良いことです 在宅には、それを行使する。 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> ここでは、それは見ていません あまりにも多くのように変更されました。 149 00:07:40,220 --> 00:07:44,170 しかし、間それをで気づきます 角括弧、この時、 150 00:07:44,170 --> 00:07:45,830 私は実際に数を省略しました。 151 00:07:45,830 --> 00:07:48,000 あなたは非常にこれを使用している場合 特別なインスタンス化 152 00:07:48,000 --> 00:07:50,380 構文は次のとおり作成します 配列、あなたが実際にしません 153 00:07:50,380 --> 00:07:53,491 サイズを指定する必要があり 配列の事前。 154 00:07:53,491 --> 00:07:55,740 コンパイラは十分にスマートであります 実際にあなたことを知っています 155 00:07:55,740 --> 00:07:58,980 サイズ3の配列をしたいです、 あなたは、3つの要素を入れているので 156 00:07:58,980 --> 00:08:00,640 等号の右側にあります。 157 00:08:00,640 --> 00:08:04,140 次の4つを入れていた場合、それがなければなりません あなたのサイズ4の真理値表を与えられました。 158 00:08:04,140 --> 00:08:06,270 などのように。 159 00:08:06,270 --> 00:08:09,380 >> 配列は、単一に限定されるものではありません かなりクールです寸法、。 160 00:08:09,380 --> 00:08:12,000 あなたは、実際には多くを持つことができます あなたが望むようにサイド指定子。 161 00:08:12,000 --> 00:08:16,470 したがって、たとえば、あなたが作成したい場合 ゲーム戦艦用ボード、 162 00:08:16,470 --> 00:08:20,910 あなたが今までプレイした場合、あるゲームです 10×10グリッド上のペグと共演、 163 00:08:20,910 --> 00:08:22,450 あなたはこのような配列を作成することができます。 164 00:08:22,450 --> 00:08:26,030 あなたはブールを言うことができます 戦艦広場ブラケット10 165 00:08:26,030 --> 00:08:29,590 閉じ角括弧広場 ブラケット10は、角括弧を閉じました。 166 00:08:29,590 --> 00:08:32,710 >> そして、あなたはに選択することができます 10のようにあなたの心でこれを解釈します 167 00:08:32,710 --> 00:08:35,576 細胞の10グリッドによります。 168 00:08:35,576 --> 00:08:37,409 今、実際には、メモリ内に、 それは実際にはありません 169 00:08:37,409 --> 00:08:42,440 100要素のままで、 1次元配列。 170 00:08:42,440 --> 00:08:46,070 そして、これは、実際には、あなたの場合のために行きます 3次元または4または5を持っています。 171 00:08:46,070 --> 00:08:49,420 それは本当にただ掛けるん indices--のすべて 172 00:08:49,420 --> 00:08:51,130 またはサイズのすべて 一緒specifiers--、 173 00:08:51,130 --> 00:08:53,480 そしてあなただけの一次元の取得します そのサイズの配列。 174 00:08:53,480 --> 00:08:57,090 >> しかし、組織の面でと 可視化と人間の知覚、 175 00:08:57,090 --> 00:08:59,240 それは非常に簡単にすることができます グリッドで動作するように 176 00:08:59,240 --> 00:09:02,980 あなたはこのゲームで作業している場合 三目並べや戦艦のような、 177 00:09:02,980 --> 00:09:05,179 またはそのような何か。 178 00:09:05,179 --> 00:09:06,970 それは偉大な抽象化です、 代わりに持っていることの 179 00:09:06,970 --> 00:09:09,340 三目並べを考えること 9のラインとしてボード 180 00:09:09,340 --> 00:09:13,810 正方形や戦艦ボード 100マスの行として。 181 00:09:13,810 --> 00:09:16,010 10グリッドまたは3で10 3グリッドによっておそらく 182 00:09:16,010 --> 00:09:17,225 より多くの容易認識します。 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> 今、何か本当に アレイに関する重要。 185 00:09:22,280 --> 00:09:25,950 私たちは、それぞれの個体を治療することができます 変数として配列の要素。 186 00:09:25,950 --> 00:09:27,700 我々は以前のことを見ました ときに我々が割り当てられました 187 00:09:27,700 --> 00:09:32,240 特定のブール値の真値 または条件式の中でそれらをテストします。 188 00:09:32,240 --> 00:09:35,960 しかし、我々は全体を扱うことができません 変数として配列そのもの。 189 00:09:35,960 --> 00:09:41,760 私たちは、例えば、1つの配列を割り当てることができません 割り当てを使用して別の配列へ 190 00:09:41,760 --> 00:09:42,930 オペレータ。 191 00:09:42,930 --> 00:09:44,640 それは法的C.ではありません 192 00:09:44,640 --> 00:09:47,920 >> 私たちは何をexample--ために必要な場合 我々はその例でやっているだろう 193 00:09:47,920 --> 00:09:50,200 別のものに1の配列をコピーすることであろう。 194 00:09:50,200 --> 00:09:53,810 我々はそれをしたい場合、我々は実際に 上書きコピーするためにループを使用する必要があります 195 00:09:53,810 --> 00:09:56,550 当時の個々の要素1。 196 00:09:56,550 --> 00:09:58,700 私はそれは少し時間がかかります知っています。 197 00:09:58,700 --> 00:10:04,022 >> したがって、たとえば、私たちはこれらのカップルを持っていた場合 コー​​ドの行、これは動作しますか? 198 00:10:04,022 --> 00:10:05,230 まあ、いや、それは右、ではないでしょうか? 199 00:10:05,230 --> 00:10:07,860 我々がしようとしているため、 バーに食べ物を割り当てます。 200 00:10:07,860 --> 00:10:09,860 それが仕事に行くのではないですが、 それが配列のだから、 201 00:10:09,860 --> 00:10:13,130 私たちは今説明 それは法律上のC.はないこと 202 00:10:13,130 --> 00:10:15,580 >> 代わりに、私たちがしたい場合は 食品の内容をコピー 203 00:10:15,580 --> 00:10:18,070 何であるバー、へ 我々は、ここでやろうとしています 204 00:10:18,070 --> 00:10:19,970 我々はこのような構文が必要になります。 205 00:10:19,970 --> 00:10:24,170 私たちは行くループを持っています Jから、5まで0に等しいです 206 00:10:24,170 --> 00:10:28,390 私たちは、の繰り返しごとにJをインクリメント ループとそのような要素を割り当てます。 207 00:10:28,390 --> 00:10:33,360 また、これはバーをもたらすであろう 一つ、二つ、三つ、四つ、五つ、あります 208 00:10:33,360 --> 00:10:36,730 しかし、我々は非常にそれこれをしなければなりません 遅い要素ごとの方法で、 209 00:10:36,730 --> 00:10:40,009 代わりにちょうどによって 配列全体をコピーします。 210 00:10:40,009 --> 00:10:42,050 他のプログラミングで 言語、より現代的なもの、 211 00:10:42,050 --> 00:10:45,610 あなたは、実際には、単に行うことができます その構文をシンプルに等しいです。 212 00:10:45,610 --> 00:10:49,620 しかしCは、残念ながら、私たちはしています それを行うことは許されません。 213 00:10:49,620 --> 00:10:52,026 >> さて、もう一つあります 私が言及したいこと 214 00:10:52,026 --> 00:10:54,650 少しすることができますアレイに関する 少しトリッキーはじめて 215 00:10:54,650 --> 00:10:55,990 彼らと仕事。 216 00:10:55,990 --> 00:10:59,860 私たちは、ビデオで説明 変数のスコープについて、 217 00:10:59,860 --> 00:11:04,940 それを呼び出すC言語のほとんどの変数、 これらの機能には、値によって渡されます。 218 00:11:04,940 --> 00:11:08,620 あなたはそれが何を意味するのか覚えていますか 値によって何かを渡すには? 219 00:11:08,620 --> 00:11:12,570 それは私達がのコピーを作っていることを意味します に渡されています変数。 220 00:11:12,570 --> 00:11:16,290 呼び出し先関数は、関数 つまり、変数を受けてい 221 00:11:16,290 --> 00:11:17,730 変数自体を取得しません。 222 00:11:17,730 --> 00:11:20,850 それは自身のローカルを取得 で動作するようにそのコピー。 223 00:11:20,850 --> 00:11:24,070 >> アレイは、当然のことながら、行います この規則に従いません。 224 00:11:24,070 --> 00:11:27,600 むしろ、我々はこれを呼ぶもの 参照渡しされます。 225 00:11:27,600 --> 00:11:31,360 実際に呼び出し先 配列を受け取るん。 226 00:11:31,360 --> 00:11:34,207 それはを受信しません その独自のローカルコピー。 227 00:11:34,207 --> 00:11:36,040 そして、あなたが考える場合 それは、これは理にかなっています。 228 00:11:36,040 --> 00:11:39,750 アレイが実際に大きい場合、それ そんなに時間と労力がかかります 229 00:11:39,750 --> 00:11:44,470 の配列のコピーを作成します 100または1000万の要素、 230 00:11:44,470 --> 00:11:48,290 それがためにそれを価値がないことを そのコピーを受信する機能、 231 00:11:48,290 --> 00:11:51,037 それにいくつかの作業を行うと、 ただコピーして行われ、 232 00:11:51,037 --> 00:11:53,120 それが持っている必要はありません。 それはもうぶらぶら。 233 00:11:53,120 --> 00:11:54,710 >> アレイがあるため、いくつかの 大型で扱いにくいです、 234 00:11:54,710 --> 00:11:56,001 私達はちょうど参照渡し。 235 00:11:56,001 --> 00:12:01,210 私達はちょうどその機能を信頼 何かを壊さありません。 236 00:12:01,210 --> 00:12:03,010 だから、実際には配列を取得しません。 237 00:12:03,010 --> 00:12:05,290 それは、独自のローカルコピーを取得していません。 238 00:12:05,290 --> 00:12:07,170 >> だから、これは何を意味しています、 その後、ときに呼び出し先 239 00:12:07,170 --> 00:12:08,970 配列の要素を操作しますか? 240 00:12:08,970 --> 00:12:10,780 何が起こるのですか? 241 00:12:10,780 --> 00:12:13,210 今のところ、我々は、光沢ます なぜまさにこのオーバー 242 00:12:13,210 --> 00:12:15,320 たまたま、なぜ配列 参照によって渡されます 243 00:12:15,320 --> 00:12:17,810 他のすべては、値によって渡されます。 244 00:12:17,810 --> 00:12:20,470 しかし、私はあなたを約束し、我々はなります 戻ってあなたに答えを与えます 245 00:12:20,470 --> 00:12:23,750 後でビデオでこれに。 246 00:12:23,750 --> 00:12:28,110 >> ここにあなたのための1以上の運動です 私たちは、アレイ上で物事をラップする前に。 247 00:12:28,110 --> 00:12:31,400 ここでのコードの束、それはです ない特に良いスタイル、 248 00:12:31,400 --> 00:12:33,400 ちょうど私はその警告を行います。 249 00:12:33,400 --> 00:12:36,660 ここにコメントはありません、 これはかなり悪い形です。 250 00:12:36,660 --> 00:12:39,750 しかし、それは私がなりたかっただけですので、 画面上のすべてに適合することができます。 251 00:12:39,750 --> 00:12:44,360 >> 上部には、あなたは私が持っていることがわかります セット・アレイのための2つの関数宣言 252 00:12:44,360 --> 00:12:45,820 そして、int型を設定します。 253 00:12:45,820 --> 00:12:49,680 セットの配列は明らかに配列を受け取り その入力として4つの整数の。 254 00:12:49,680 --> 00:12:52,767 そして、設定されたintが明らかに取ります その入力として単一の整数。 255 00:12:52,767 --> 00:12:54,350 それらの両方が出力されていません。 256 00:12:54,350 --> 00:12:57,689 出力、リターン それぞれのタイプは、無効となります。 257 00:12:57,689 --> 00:12:59,480 メインでは、我々は持っています コー​​ドの行のカップル。 258 00:12:59,480 --> 00:13:02,730 私たちは、整数型の変数を宣言 Aと呼ばれ、これに値10を割り当てます。 259 00:13:02,730 --> 00:13:07,080 私たちは4つの整数の配列を宣言 Bと呼ばれ、要素0、1を割り当て、 260 00:13:07,080 --> 00:13:08,730 それぞれ2および3、。 261 00:13:08,730 --> 00:13:12,190 そこで、設定するための呼び出しを持っています int型と配列を設定するための呼び出し。 262 00:13:12,190 --> 00:13:15,910 セットアレイとセットの定義 int型は一番下に、下に以下の通りです。 263 00:13:15,910 --> 00:13:17,640 >> だから、再び、私はあなたに質問をします。 264 00:13:17,640 --> 00:13:20,770 何をプリントアウトされます ここでメインの終わりに? 265 00:13:20,770 --> 00:13:23,020 プリントアウトcolがあります。アイム 2つの整数をプリントアウトします。 266 00:13:23,020 --> 00:13:28,010 私はAの内容をプリントアウトだし、 Bスクエアブラケット0の内容。 267 00:13:28,010 --> 00:13:29,880 ここでは、ビデオを一時停止し、時間がかかります。 268 00:13:29,880 --> 00:13:35,482 あなたは何これを理解することができます 関数が最後に印刷されますか? 269 00:13:35,482 --> 00:13:38,190 うまくいけば、あなたが思い出す場合 値渡しの区別 270 00:13:38,190 --> 00:13:41,680 この、参照渡し 問題はあなたのためにあまりにもトリッキーではありませんでした。 271 00:13:41,680 --> 00:13:44,130 答えそして、あなたが希望 これは発見しました。 272 00:13:44,130 --> 00:13:47,660 あなたがするように、本当にわからない場合 それは場合は、理由は、第二を取ります 273 00:13:47,660 --> 00:13:50,620 戻って、私は何であったか確認します 配列を渡すについて議論 274 00:13:50,620 --> 00:13:53,450 参照することにより、通過対 値によって他の変数、 275 00:13:53,450 --> 00:13:56,680 うまくいけば、それが作りますよ 少しより多くの意味。 276 00:13:56,680 --> 00:13:59,760 >> 私はダグロイドだが、これはCS50です。 277 00:13:59,760 --> 00:14:01,467