1 00:00:00,000 --> 00:00:03,388 >> [MÜZİK OYUN] 2 00:00:03,388 --> 00:00:05,104 3 00:00:05,104 --> 00:00:06,020 Doug LLOYD: Pekala. 4 00:00:06,020 --> 00:00:07,680 Tek ile çalışma değişkenler oldukça eğlenceli. 5 00:00:07,680 --> 00:00:09,500 Ama biz ne isterseniz çalışmak değişkenlerin bir sürü, 6 00:00:09,500 --> 00:00:12,760 ama biz bir grup var istemiyorum Bizim kod etrafında farklı isimler uçan? 7 00:00:12,760 --> 00:00:15,980 Bu durumda, diziler vardır gerçekten kullanışlı gelecek. 8 00:00:15,980 --> 00:00:19,510 Diziler gerçekten temel bir veri vardır Herhangi bir programlama dili için yapı 9 00:00:19,510 --> 00:00:20,260 Kullanacağınız söyledi. 10 00:00:20,260 --> 00:00:24,450 Ve onlar, gerçekten, gerçekten yararlı konum Özellikle, biz CS 50, göreceğimiz gibi. 11 00:00:24,450 --> 00:00:27,870 >> Biz tutmak için diziler kullanın aynı veri türü değerleri 12 00:00:27,870 --> 00:00:29,830 bitişik bellek yerlerde. 13 00:00:29,830 --> 00:00:32,430 Yani bir değil, demek ki şekilde biz grup olabilir 14 00:00:32,430 --> 00:00:35,430 beraber tamsayılar bir demet bellek veya karakterlerin bir demet 15 00:00:35,430 --> 00:00:38,270 ya da gerçekten bellekte yüzer birbirine yakın ve iş 16 00:00:38,270 --> 00:00:41,930 bunların her biri vermek zorunda kalmadan biri kendi benzersiz ad, can 17 00:00:41,930 --> 00:00:44,500 Bir süre sonra hantal olsun. 18 00:00:44,500 --> 00:00:48,130 >> Şimdi, tek yönlü diziler benzetme için Yerel yazı hakkında düşünmektir 19 00:00:48,130 --> 00:00:49,000 Bir saniye ofisi. 20 00:00:49,000 --> 00:00:51,820 Yani programlama uzak adım ve sadece gözlerinizi kapatın 21 00:00:51,820 --> 00:00:54,120 ve kafanızda görselleştirmek yerel postane. 22 00:00:54,120 --> 00:00:57,160 Genellikle, çoğu sonrası ofisler, bir büyük banka var 23 00:00:57,160 --> 00:01:00,490 Duvarda bir postane kutuları. 24 00:01:00,490 --> 00:01:03,510 >> Bir dizi dev bir blok bitişik bellek, 25 00:01:03,510 --> 00:01:06,120 Bir posta aynı yolu senin postane, banka 26 00:01:06,120 --> 00:01:11,230 büyük bir boşluk olduğunu postanenin duvarı. 27 00:01:11,230 --> 00:01:15,750 Diziler, küçük bölümlenmiş edilmiştir aynı alan belli boyutlarda bloklar, 28 00:01:15,750 --> 00:01:19,930 bunların her biri, bir öğe olarak adlandırılır Aynı şekilde yazının duvarının 29 00:01:19,930 --> 00:01:23,840 ofis, küçük bölümlenmiş edilmiştir aynı alan belli boyutlarda bloklar, 30 00:01:23,840 --> 00:01:27,560 hangi bir posta kutusu diyoruz. 31 00:01:27,560 --> 00:01:31,650 Dizinin her elemanı olabilir veri belirli bir miktar depolamak 32 00:01:31,650 --> 00:01:37,540 Her posta kutusu mümkün olduğu gibi posta belirli bir miktarda tutmak için. 33 00:01:37,540 --> 00:01:41,540 >> Her bir elemanı saklanabilir ne Dizi aynı verilerin değişkenlerin 34 00:01:41,540 --> 00:01:45,300 Böyle sadece int ya Char gibi tipi, senin postane kutusunda olduğu gibi, 35 00:01:45,300 --> 00:01:47,300 Eğer tek şey sığabilecek Benzer bir tipteki, 36 00:01:47,300 --> 00:01:50,430 Bu tür mektuplar veya küçük paketler olarak. 37 00:01:50,430 --> 00:01:55,050 Son olarak, biz her elemanını erişebilirsiniz doğrudan indeks sayısına göre dizi, 38 00:01:55,050 --> 00:01:59,770 bizim postane erişebilirsiniz gibi onun posta kutusu numarasını bilerek kutu. 39 00:01:59,770 --> 00:02:02,750 Umarım, bu benzetme Eğer kafanı yardımcı olur 40 00:02:02,750 --> 00:02:05,540 Dizilerin fikri etrafında başka bir şey benzerlikler 41 00:02:05,540 --> 00:02:08,400 muhtemelen olduğunu zaten aşina. 42 00:02:08,400 --> 00:02:13,182 >> C, bir dizinin elemanları 1 değil, 0 dan başlayarak endeksli. 43 00:02:13,182 --> 00:02:14,390 Ve bu gerçekten çok önemli. 44 00:02:14,390 --> 00:02:18,530 Neden biz Ve aslında, bu, CS 50, Sık sık ve neden bilgisayar bilimcileri 45 00:02:18,530 --> 00:02:22,150 0'dan sayacaktır olduğunu Çünkü C'nin dizinin 46 00:02:22,150 --> 00:02:24,660 her zaman 0 başlar indeksleme. 47 00:02:24,660 --> 00:02:28,730 Bir dizi n elemanlarından oluşur Yani eğer, Bu dizinin ilk elemanı 48 00:02:28,730 --> 00:02:32,960 , indeks 0 yer almaktadır ve dizinin son elemanı 49 00:02:32,960 --> 00:02:36,610 n indeksi eksi 1 bulunmaktadır. 50 00:02:36,610 --> 00:02:43,160 Yine n unsurları varsa bizim Dizi, son endeks n eksi 1 olduğunu. 51 00:02:43,160 --> 00:02:46,820 >> Yani bizim dizi 50 unsurları varsa İlk unsur, endeks 0 yer almaktadır 52 00:02:46,820 --> 00:02:51,060 ve son eleman endeksi 49 bulunmaktadır. 53 00:02:51,060 --> 00:02:53,940 Ne yazık ki, ya neyse, bakış açınıza bağlı olarak, 54 00:02:53,940 --> 00:02:56,170 C burada çok hoşgörülü olduğunu. 55 00:02:56,170 --> 00:02:59,480 Bu engel olmaz senin dizi sınırlarının dışına gidiyor. 56 00:02:59,480 --> 00:03:03,080 Sen eksi erişebilir Senin dizinin 3 unsuru 57 00:03:03,080 --> 00:03:07,400 ya da dizinin 59 elemanı, diziniz sadece 50 öğeleri varsa. 58 00:03:07,400 --> 00:03:11,060 Bu sizin programı durmayacak derleme, ama çalışma zamanında, 59 00:03:11,060 --> 00:03:14,350 Bir karşılaşabileceğiniz Korkunç segmentasyon arızası 60 00:03:14,350 --> 00:03:17,460 Belleği erişmek başlatırsanız Bu ne sınırları dışında olduğunu 61 00:03:17,460 --> 00:03:19,260 size vermek için bir program istedi. 62 00:03:19,260 --> 00:03:21,250 Yani dikkatli olun. 63 00:03:21,250 --> 00:03:23,120 >> Ne bir dizi yapar beyan benziyor? 64 00:03:23,120 --> 00:03:26,940 Biz varlığını içine bir dizi kodu nasıl gibi herhangi bir başka değişken kod? 65 00:03:26,940 --> 00:03:31,250 Üç parça bir dizi vardır Bir tür declaration--, bir isim, 66 00:03:31,250 --> 00:03:31,880 ve boyutu. 67 00:03:31,880 --> 00:03:34,088 Bu çok benzer Değişken bildirimi, hangi 68 00:03:34,088 --> 00:03:36,970 Sadece bir tür ve bir isim, varlık büyüklüğü elemanı 69 00:03:36,970 --> 00:03:39,860 Bir dizi için özel bir durum, biz onlardan bir demet alıyorsanız, çünkü 70 00:03:39,860 --> 00:03:41,830 aynı zamanda. 71 00:03:41,830 --> 00:03:45,560 >> Yani tipi değişken ne tür sen Dizinin her elemanı olmak istiyorum. 72 00:03:45,560 --> 00:03:47,150 Tamsayılar dizisi için istiyor musunuz? 73 00:03:47,150 --> 00:03:49,010 Ardından, veri türü int olmalıdır. 74 00:03:49,010 --> 00:03:51,760 Eğer bir olmak ister misiniz Çiftlerde veya yüzen dizi? 75 00:03:51,760 --> 00:03:54,545 Veri tipi çift olması veya şamandıra olmalıdır. 76 00:03:54,545 --> 00:03:56,420 Adı ne size dizinizi aramak istiyorum. 77 00:03:56,420 --> 00:04:00,970 Bu dev isim istiyorsun tamsayılar ya da şamandıra veya karakter banka 78 00:04:00,970 --> 00:04:03,250 veya iki katına, ya da ne var? 79 00:04:03,250 --> 00:04:04,700 Ne onu aramak istersin? 80 00:04:04,700 --> 00:04:06,110 Pretty kendini açıklayıcı. 81 00:04:06,110 --> 00:04:08,610 >> Gider Son olarak, boyut, köşeli parantez içinde, 82 00:04:08,610 --> 00:04:12,180 kaç unsurlar yapacağınız diziniz içeren gibi. 83 00:04:12,180 --> 00:04:13,530 Kaç tamsayı istiyorsun? 84 00:04:13,530 --> 00:04:15,570 Kaç yüzen istiyorsun? 85 00:04:15,570 --> 00:04:19,070 >> Yani, örneğin, öğrenci notları 40 int. 86 00:04:19,070 --> 00:04:26,020 Bu Öğrenci adında bir dizi beyan 40 tamsayılar oluşan sınıflarda,. 87 00:04:26,020 --> 00:04:28,180 Pretty kendini açıklayıcı, umarım. 88 00:04:28,180 --> 00:04:29,330 İşte bir başka örnek. 89 00:04:29,330 --> 00:04:31,560 Çift menü fiyatları 8. 90 00:04:31,560 --> 00:04:34,610 Bu adında bir dizi oluşturur Oluşan menü fiyatları, 91 00:04:34,610 --> 00:04:38,300 Sekiz çiftler için bellekte oda. 92 00:04:38,300 --> 00:04:42,000 93 00:04:42,000 --> 00:04:45,750 >> Her elemanın düşünüyorsanız türü veri tipi bir dizinin, 94 00:04:45,750 --> 00:04:49,860 bu nedenle, örneğin, tek bir eleman int türünde bir dizi, aynı şekilde size 95 00:04:49,860 --> 00:04:52,770 Başka düşünürdüm int türünde değişken, 96 00:04:52,770 --> 00:04:56,440 tüm tanıdık operasyonları biz o Operasyon önce tartışılan 97 00:04:56,440 --> 00:04:58,270 Video mantıklı olacaktır. 98 00:04:58,270 --> 00:05:01,620 Yani burada biz bir dizi bildirebilirsiniz Truthtable denilen boolean bölgesinin 99 00:05:01,620 --> 00:05:05,590 hangi 10 Booleans için odadan oluşmaktadır. 100 00:05:05,590 --> 00:05:09,650 >> Ve sonra, sadece biz sadece atayabilirsiniz gibi Çeşidi başka değişkene bir değer 101 00:05:09,650 --> 00:05:13,470 Boole, biz bir şey söyleyebiliriz Truthtable köşeli ayraç gibi 102 00:05:13,470 --> 00:05:18,040 Biz işaret nasıl 2, hangi doğruluk tablosunun eleman? 103 00:05:18,040 --> 00:05:20,350 Üçüncü unsur Doğruluk tablosu, hatırlıyorum, çünkü 104 00:05:20,350 --> 00:05:21,800 Biz 0'dan güveniyoruz. 105 00:05:21,800 --> 00:05:25,690 Yani biz işaret nasıl doğruluk tablosunun üçüncü unsur. 106 00:05:25,690 --> 00:05:28,680 Truthtable 2, yanlış eşittir sadece biz declare-- olabilir gibi 107 00:05:28,680 --> 00:05:33,560 veya herhangi bir yerine, atama olabilir Boolean tipi değişken yanlış olduğu. 108 00:05:33,560 --> 00:05:35,050 >> Biz de koşullarda kullanabilirsiniz. 109 00:05:35,050 --> 00:05:39,000 (truthtable 7 == eğer demek doğrudur), 110 00:05:39,000 --> 00:05:42,370 Sekizinci elemanı ise Truthtable bölgesinin doğrudur 111 00:05:42,370 --> 00:05:46,760 belki mesaj yazdırmak istiyorsanız kullanıcı, printf ("DOĞRU! n") için ;. 112 00:05:46,760 --> 00:05:50,290 Bu Truthtable söylemek bize neden 10 doğru, gerçek eşittir? 113 00:05:50,290 --> 00:05:53,590 Eh, ben can, ama oldukça var tehlikeli, çünkü hatırlıyorum 114 00:05:53,590 --> 00:05:56,260 Biz 10 Booleans bir dizi var. 115 00:05:56,260 --> 00:06:02,340 Yani en yüksek endeks o derleyici bize 9 vermiştir. 116 00:06:02,340 --> 00:06:06,010 >> Bu program derlemek, ancak eğer bellekte başka bir şey 117 00:06:06,010 --> 00:06:09,110 nerede olur var Truthtable 10 gitmek için bekliyoruz, 118 00:06:09,110 --> 00:06:13,980 Biz bir segment hataya zarar verebilir. Biz onunla uzak olsun olabilir, ama genel olarak, 119 00:06:13,980 --> 00:06:14,710 oldukça tehlikeli. 120 00:06:14,710 --> 00:06:19,759 Peki ben burada yapıyorum yasal C, ama ille en iyi hamle. 121 00:06:19,759 --> 00:06:22,300 Şimdi, beyan zaman ve Aynı anda bir diziyi başlatmak, 122 00:06:22,300 --> 00:06:23,960 Aslında oldukça var özel sözdizimi size 123 00:06:23,960 --> 00:06:26,250 dizi doldurmak için kullanabileceğiniz başlangıç ​​değerleri ile. 124 00:06:26,250 --> 00:06:30,130 Bu hantal alabilirsiniz boyutu 100 bir diziyi bildirmek 125 00:06:30,130 --> 00:06:33,430 ve sonra söylemek zorunda, eleman 0 Bu eşittir; elemanı 1, bu eşittir; 126 00:06:33,430 --> 00:06:34,850 eleman 2 olduğunu eşittir. 127 00:06:34,850 --> 00:06:36,370 Doğru, ne anlamı var? 128 00:06:36,370 --> 00:06:39,470 >> Küçük bir dizi var ise, Böyle bir şey yapabilirdi. 129 00:06:39,470 --> 00:06:44,360 Bool truthtable 3 açık eşittir kaşlı ayraç ve sonra virgül 130 00:06:44,360 --> 00:06:48,060 elemanların listesini ayrı Eğer dizide koymak istiyorum. 131 00:06:48,060 --> 00:06:50,520 Sonra kaşlı ayraç noktalı kapatın. 132 00:06:50,520 --> 00:06:53,910 Bu bir dizi oluşturur Boyut Truthtable olarak adlandırılan üç, 133 00:06:53,910 --> 00:06:56,090 elemanları, yanlış doğru ve gerçek olan. 134 00:06:56,090 --> 00:06:59,270 Ve aslında, örnekleme Burada var sözdizimi 135 00:06:59,270 --> 00:07:03,350 yapıyor tam olarak aynı Aşağıda bireysel eleman sözdizimi. 136 00:07:03,350 --> 00:07:09,380 Kodlama Bu iki yolu olur aynı dizi üretir. 137 00:07:09,380 --> 00:07:11,740 >> Benzer şekilde, biz yineleme elementlerin tüm 138 00:07:11,740 --> 00:07:15,400 Bir döngü kullanarak bir dizi, içinde Aslında, bir çok kuvvetle önerilir 139 00:07:15,400 --> 00:07:16,790 evde egzersiz. 140 00:07:16,790 --> 00:07:20,720 Nasıl bir dizi oluşturmak do 100 tamsayılar, bir 141 00:07:20,720 --> 00:07:23,477 dizinin her öğesi olan endeks nedir? 142 00:07:23,477 --> 00:07:26,560 Yani, örneğin, biz 100 bir dizi var tamsayı ve birinci elemanı, 143 00:07:26,560 --> 00:07:27,790 Biz 0 koymak istiyorum. 144 00:07:27,790 --> 00:07:29,810 Ikinci eleman olarak, biz 1 koymak istiyorum. 145 00:07:29,810 --> 00:07:33,319 Üçüncü elemanı, biz istiyoruz 2 koymak; ve benzeri ve benzerleri. 146 00:07:33,319 --> 00:07:35,360 Bu gerçekten çok iyi evde egzersiz yapmak. 147 00:07:35,360 --> 00:07:38,190 148 00:07:38,190 --> 00:07:40,220 >> Burada, bu görünmüyor gibi çok fazla değişti. 149 00:07:40,220 --> 00:07:44,170 Ama arasındaki fark köşeli parantezler, bu sefer, 150 00:07:44,170 --> 00:07:45,830 Aslında numarayı ihmal ettik. 151 00:07:45,830 --> 00:07:48,000 Eğer kullanıyorsanız ediyorsanız, bu çok özel örnekleme 152 00:07:48,000 --> 00:07:50,380 sözdizimi, bir oluşturmak için Dizi, aslında yok 153 00:07:50,380 --> 00:07:53,491 boyutunu belirtmek gerekir Dizinin önceden. 154 00:07:53,491 --> 00:07:55,740 Derleyici yeterince akıllı aslında size bilmek 155 00:07:55,740 --> 00:07:58,980 boyutu 3 bir dizi istiyorum Eğer üç unsuru koymak çünkü 156 00:07:58,980 --> 00:08:00,640 eşittir işaretinin sağındaki. 157 00:08:00,640 --> 00:08:04,140 Eğer dört koymuştu, o olurdu Size boyutu dört bir doğruluk tablosu verilen; 158 00:08:04,140 --> 00:08:06,270 ve benzeri ve benzerleri. 159 00:08:06,270 --> 00:08:09,380 >> Diziler tek sınırlı değildir oldukça serin boyut. 160 00:08:09,380 --> 00:08:12,000 Aslında birçok olabilir Yan belirteçleri istediğiniz gibi. 161 00:08:12,000 --> 00:08:16,470 Yani, örneğin, oluşturmak istediğiniz takdirde Oyun Battleship için tahta, 162 00:08:16,470 --> 00:08:20,910 Hiç oynanırsa, bir oyun 10 ızgara tarafından, 10 mandal ile oynanır, 163 00:08:20,910 --> 00:08:22,450 Eğer böyle bir dizi oluşturmak olabilir. 164 00:08:22,450 --> 00:08:26,030 Sen Bool söyleyebiliriz savaş köşeli parantez 10 165 00:08:26,030 --> 00:08:29,590 Kapalı köşeli ayraç kare dirsek 10 köşeli ayraç kapattı. 166 00:08:29,590 --> 00:08:32,710 >> Ve sonra, seçebilirsiniz 10 olarak kafanızda bu yorumlamak 167 00:08:32,710 --> 00:08:35,576 Hücrelerin 10 ızgara ile. 168 00:08:35,576 --> 00:08:37,409 Şimdi, aslında, bellekte, gerçekten sadece does 169 00:08:37,409 --> 00:08:42,440 , 100 eleman kalır Tek boyutlu dizi. 170 00:08:42,440 --> 00:08:46,070 Ve bu, aslında, eğer gider üç boyutlu ya da dört ya da beş tane var. 171 00:08:46,070 --> 00:08:49,420 Gerçekten sadece çarpma yok indices-- tüm 172 00:08:49,420 --> 00:08:51,130 ya da boyutu her Birlikte specifiers--, 173 00:08:51,130 --> 00:08:53,480 ve sadece tek boyutlu olsun o boyutta bir dizi. 174 00:08:53,480 --> 00:08:57,090 >> Ama organizasyon anlamında ve görselleştirme ve insan algısı, 175 00:08:57,090 --> 00:08:59,240 çok daha kolay olabilir, bir ızgara ile çalışmak 176 00:08:59,240 --> 00:09:02,980 Eğer bir oyun üzerinde çalışıyorsanız Tic-tac-toe veya Battleship benzer, 177 00:09:02,980 --> 00:09:05,179 Ya da bunun gibi bir şey. 178 00:09:05,179 --> 00:09:06,970 Harika bir soyutlama olduğunu, Bunun yerine sahip 179 00:09:06,970 --> 00:09:09,340 Bir Tic-tac-toe düşünmek dokuz çizgi olarak tahta 180 00:09:09,340 --> 00:09:13,810 kareler veya Battleship kurulu 100 kareler çizgi olarak gösterilmiştir. 181 00:09:13,810 --> 00:09:16,010 10 ızgara veya üç tarafından 10 üçe ızgara muhtemelen 182 00:09:16,010 --> 00:09:17,225 çok daha kolay algılamak. 183 00:09:17,225 --> 00:09:19,820 184 00:09:19,820 --> 00:09:22,280 >> Şimdi, bir şey gerçekten diziler hakkında önemli. 185 00:09:22,280 --> 00:09:25,950 Biz, her bir tedavi edebilir bir değişken olarak dizinin elemanı. 186 00:09:25,950 --> 00:09:27,700 Biz daha önce gördük biz ne zaman atama yapıldı 187 00:09:27,700 --> 00:09:32,240 Belirli Booleans True değeri ya Koşullamalar onları test. 188 00:09:32,240 --> 00:09:35,960 Ama biz bütününü tedavi edemez değişkenler olarak kendilerini diziler. 189 00:09:35,960 --> 00:09:41,760 Bu, örneğin, bir dizi tayin edilemez atama kullanarak başka diziye 190 00:09:41,760 --> 00:09:42,930 Operatör. 191 00:09:42,930 --> 00:09:44,640 Yasal C. değil 192 00:09:44,640 --> 00:09:47,920 >> Biz example-- için, isterseniz neyi biz bu örnekte yapıyor olacak 193 00:09:47,920 --> 00:09:50,200 başka bir bir dizi kopyalamak olacaktır. 194 00:09:50,200 --> 00:09:53,810 Biz, aslında yapmak istiyorsanız kopyalamak için bir döngü kullanmak gerekir 195 00:09:53,810 --> 00:09:56,550 Aynı anda her bir elemanı, bir. 196 00:09:56,550 --> 00:09:58,700 Ben alıcı biraz zaman olduğunu biliyorum. 197 00:09:58,700 --> 00:10:04,022 >> Yani, örneğin, eğer bu çift vardı kod satırları, bu iş olur mu? 198 00:10:04,022 --> 00:10:05,230 Şey, hayır, bu doğru, değil mi? 199 00:10:05,230 --> 00:10:07,860 Biz çalışıyoruz, çünkü bar yiyecek atamak. 200 00:10:07,860 --> 00:10:09,860 Bu işe gitmiyor, bir dizi olduğu için, 201 00:10:09,860 --> 00:10:13,130 ve biz sadece tarif yasal C. olmadığını 202 00:10:13,130 --> 00:10:15,580 >> Bunun yerine, biz isterseniz Gıda içeriğini kopyalamak 203 00:10:15,580 --> 00:10:18,070 ne barda içine Biz burada yapmaya çalışıyoruz 204 00:10:18,070 --> 00:10:19,970 Böyle bir sözdizimi gerekir. 205 00:10:19,970 --> 00:10:24,170 Biz bir döngü için gider var J, 5 kadar, 0 eşittir 206 00:10:24,170 --> 00:10:28,390 ve biz her yineleme J artırmak döngü ve böyle atamak unsurlar. 207 00:10:28,390 --> 00:10:33,360 Bu aynı zamanda, çubuğu ile sonuçlanacaktır olan, bir, iki, üç, dört, beş, 208 00:10:33,360 --> 00:10:36,730 ama biz çok bunu yapmak zorunda Yavaş eleman-eleman yolu, 209 00:10:36,730 --> 00:10:40,009 yerine sadece tarafından Tüm dizi kopyalama. 210 00:10:40,009 --> 00:10:42,050 Diğer programlamada dil, daha modern olanlar, 211 00:10:42,050 --> 00:10:45,610 Eğer, aslında, sadece yapabilirsiniz Bu sözdizimi basit eşittir. 212 00:10:45,610 --> 00:10:49,620 Ama C, maalesef, biz konum Bunu yapmak için izin verilmez. 213 00:10:49,620 --> 00:10:52,026 >> Şimdi, diğeri var şey bahsetmek istiyorum 214 00:10:52,026 --> 00:10:54,650 diziler hakkında böyle biraz olabilir biraz zor ilk kez size 215 00:10:54,650 --> 00:10:55,990 onlarla çalışmak. 216 00:10:55,990 --> 00:10:59,860 Biz bir video tartışılan Değişken kapsamı hakkında, 217 00:10:59,860 --> 00:11:04,940 Bu çağrı C çoğu değişkenler, Onları fonksiyonları, değer geçirilir. 218 00:11:04,940 --> 00:11:08,620 Bunun ne anlama geldiğini hatırlıyor musun değeriyle şey geçmek? 219 00:11:08,620 --> 00:11:12,570 Biz bir kopyasını yapıyoruz demektir geçirilen ediliyor değişken. 220 00:11:12,570 --> 00:11:16,290 Aranan fonksiyonu, fonksiyon Bu, değişken alan var 221 00:11:16,290 --> 00:11:17,730 değişken kendisi almaz. 222 00:11:17,730 --> 00:11:20,850 Kendi yerel alır Bunun kopyası ile çalışmak. 223 00:11:20,850 --> 00:11:24,070 >> Diziler, tabii ki, do Bu kurala uymayan. 224 00:11:24,070 --> 00:11:27,600 Aksine, biz bu dediğimiz referans geçiyor. 225 00:11:27,600 --> 00:11:31,360 Aranan aslında dizi alırsınız yok. 226 00:11:31,360 --> 00:11:34,207 Bu almaz onun Bunun kendi yerel kopyası. 227 00:11:34,207 --> 00:11:36,040 Ve sen düşünmek eğer o, bu mantıklı. 228 00:11:36,040 --> 00:11:39,750 Diziler gerçekten büyükse, o çok zaman ve çaba gerektirir 229 00:11:39,750 --> 00:11:44,470 bir dizinin bir kopyasını yapmak 100 veya 1000 veya 10.000 elemanları, 230 00:11:44,470 --> 00:11:48,290 Bir için değmez olduğunu Bunun bir kopyasını almak için işlev, 231 00:11:48,290 --> 00:11:51,037 sonra onunla bazı işler yapmak ve Sadece kopya ile yapılabilir; 232 00:11:51,037 --> 00:11:53,120 o olması gerekmez artık etrafında asılı. 233 00:11:53,120 --> 00:11:54,710 >> Diziler Çünkü bazı hantal ve biçimsiz, 234 00:11:54,710 --> 00:11:56,001 Biz sadece referans onları geçmek. 235 00:11:56,001 --> 00:12:01,210 Biz sadece bu fonksiyonu güven bir şey kırmak değil için. 236 00:12:01,210 --> 00:12:03,010 Yani aslında dizi olsun. 237 00:12:03,010 --> 00:12:05,290 O kendi yerel kopyasını almaz. 238 00:12:05,290 --> 00:12:07,170 >> Peki bu ne anlama geliyor, Daha sonra, zaman Aranan 239 00:12:07,170 --> 00:12:08,970 Dizinin elemanlarını manipüle? 240 00:12:08,970 --> 00:12:10,780 Ne olur? 241 00:12:10,780 --> 00:12:13,210 Şimdilik, biz parlak olacak Neden tam olarak bu aşkın 242 00:12:13,210 --> 00:12:15,320 Neden diziler olur başvuruya göre iletilir 243 00:12:15,320 --> 00:12:17,810 ve her şey değeriyle geçirilir. 244 00:12:17,810 --> 00:12:20,470 Ama size söz veriyorum, biz olacak dönmek ve size cevap vermek 245 00:12:20,470 --> 00:12:23,750 Bir sonraki videoda bu. 246 00:12:23,750 --> 00:12:28,110 >> İşte size bir tane daha egzersiz Biz diziler şeyleri tamamlamayı önce. 247 00:12:28,110 --> 00:12:31,400 Burada kod demet işte değil özellikle iyi tarzı, 248 00:12:31,400 --> 00:12:33,400 Sadece bu ihtar yapacağız. 249 00:12:33,400 --> 00:12:36,660 Burada hiç yorum yok, hangi oldukça kötü şeklidir. 250 00:12:36,660 --> 00:12:39,750 Ama ben olmak istedim çünkü sadece var Ekrandaki her şeyi sığdırmak mümkün. 251 00:12:39,750 --> 00:12:44,360 >> Üst kısmında, ben görebiliyorum set dizisi için iki fonksiyon tanımlamaları 252 00:12:44,360 --> 00:12:45,820 ve int ayarlayın. 253 00:12:45,820 --> 00:12:49,680 Set dizisi görünüşte bir dizi alır girdi olarak dört tamsayılar. 254 00:12:49,680 --> 00:12:52,767 Ve set int görünüşte alır girdi olarak tek bir tam sayı. 255 00:12:52,767 --> 00:12:54,350 Fakat her ikisi de bir çıkış yok. 256 00:12:54,350 --> 00:12:57,689 Çıktı, dönüş Her biri geçersizdir bölgesinin yazın. 257 00:12:57,689 --> 00:12:59,480 Main, biz var bir kod satırları çift. 258 00:12:59,480 --> 00:13:02,730 Biz bir tamsayı değişken bildirmek A denilen ve o değeri 10 atayın. 259 00:13:02,730 --> 00:13:07,080 Biz dört tamsayı dizisi bildirmek B olarak adlandırılan ve elemanları 0, 1 atamak, 260 00:13:07,080 --> 00:13:08,730 Sırasıyla, 2 ve 3,. 261 00:13:08,730 --> 00:13:12,190 Sonra, biz ayarlamak için bir çağrı var int ve bir çağrı dizisi ayarlamak için. 262 00:13:12,190 --> 00:13:15,910 Set dizinin ve set tanımları int altta aşağı aşağıda belirtilmiştir. 263 00:13:15,910 --> 00:13:17,640 >> Ve böylece, yine, sana bir soru sorabilir. 264 00:13:17,640 --> 00:13:20,770 Ne çıktısı alır Burada Main sonunda? 265 00:13:20,770 --> 00:13:23,020 Bir çıktı col var. Ben iki tamsayı yazdırarak. 266 00:13:23,020 --> 00:13:28,010 Ben A'nın içeriğini yazdırmak çalışıyorum ve B köşeli ayraç 0 içerikleri. 267 00:13:28,010 --> 00:13:29,880 Burada Videoyu duraklatmak ve bir dakikanızı ayırın. 268 00:13:29,880 --> 00:13:35,482 Ne bu anlamaya Can fonksiyon sonunda yazdırılır? 269 00:13:35,482 --> 00:13:38,190 Umarım, hatırlarsan değerine göre geçen ayrımı 270 00:13:38,190 --> 00:13:41,680 ve referans olarak geçen bu Sorun sizin için çok zor değildi. 271 00:13:41,680 --> 00:13:44,130 Cevap ve yapacağınız bulduk budur. 272 00:13:44,130 --> 00:13:47,660 Sen gerçekten emin değilseniz, Bu durumda neden, bir saniyenizi ayırın 273 00:13:47,660 --> 00:13:50,620 Geri dönmek, ben sadece ne gözden diziler geçen tartışılması 274 00:13:50,620 --> 00:13:53,450 referans, geçen karşı değeriyle diğer değişkenlerin, 275 00:13:53,450 --> 00:13:56,680 ve umarım bu yapacağım Biraz daha mantıklı. 276 00:13:56,680 --> 00:13:59,760 >> Ben Doug Lloyd değilim ve bu CS50 olduğunu. 277 00:13:59,760 --> 00:14:01,467