1 00:00:00,000 --> 00:00:02,420 >> [MUZYKI] 2 00:00:02,420 --> 00:00:05,189 3 00:00:05,189 --> 00:00:05,980 GŁOŚNIK: Wszystko w porządku. 4 00:00:05,980 --> 00:00:08,540 Więc porozmawiajmy o innej rzecz, która jest swego rodzaju unikatowe dla C, 5 00:00:08,540 --> 00:00:10,010 czyli typy danych i zmienne. 6 00:00:10,010 --> 00:00:12,340 Kiedy mówię, unikalne dla C, naprawdę oznaczać tylko w kontekście, 7 00:00:12,340 --> 00:00:14,470 jeśli już programistą na naprawdę długi czas, 8 00:00:14,470 --> 00:00:16,270 prawdopodobnie nie mam Pracował z typów danych 9 00:00:16,270 --> 00:00:18,470 jeśli już wykorzystane nowoczesne języki programowania. 10 00:00:18,470 --> 00:00:20,432 Nowoczesne języki, takie jak PHP i JavaScript, 11 00:00:20,432 --> 00:00:22,640 które będziemy również zobaczyć trochę później w toku, 12 00:00:22,640 --> 00:00:25,550 w rzeczywistości nie trzeba określać typ danych zmiennej 13 00:00:25,550 --> 00:00:26,270 kiedy go używać. 14 00:00:26,270 --> 00:00:28,067 >> Wystarczy zadeklarować ją i zacząć go używać. 15 00:00:28,067 --> 00:00:29,900 Jeśli jest liczbą całkowitą, to Wiem, że to liczba całkowita. 16 00:00:29,900 --> 00:00:31,960 Jeśli jest to znak, że to wie, że to znak. 17 00:00:31,960 --> 00:00:35,320 Jeśli jest to słowo, to wie jest to ciąg znaków, tzw. 18 00:00:35,320 --> 00:00:37,300 >> Jednak w C, który jest starszy język, musimy 19 00:00:37,300 --> 00:00:39,420 określić dane typ każdej zmiennej 20 00:00:39,420 --> 00:00:42,990 które tworzą razem pierwszy że używamy tej zmiennej. 21 00:00:42,990 --> 00:00:45,030 Tak więc C jest wyposażony w niektóre wbudowane typy danych. 22 00:00:45,030 --> 00:00:46,972 I zaznajomimy się niektóre z nich. 23 00:00:46,972 --> 00:00:50,180 A następnie potem będziemy również porozmawiać trochę o niektórych typów danych 24 00:00:50,180 --> 00:00:54,450 że napisałem dla ciebie, dzięki czemu można z nich korzystać w CS50. 25 00:00:54,450 --> 00:00:56,130 >> Pierwszym z nich jest int. 26 00:00:56,130 --> 00:00:59,110 Typ danych int używanego dla zmiennych która będzie przechowywać wartości całkowite. 27 00:00:59,110 --> 00:01:03,210 Tak, 1, 2, 3, minus 1, 2, 3 i tak dalej. 28 00:01:03,210 --> 00:01:05,960 Liczby całkowite, które jest coś, czego Należy pamiętać, quizu, 29 00:01:05,960 --> 00:01:09,590 zawsze trwać cztery bajty pamięci, która ma 32 bitów. 30 00:01:09,590 --> 00:01:11,620 Istnieje osiem bitów bajtu. 31 00:01:11,620 --> 00:01:14,470 >> Oznacza to więc, że w zakresie wartości, które można przechowywać liczba całkowita 32 00:01:14,470 --> 00:01:19,130 jest ograniczona, co może mieścić się w 32 bity wartości informacji. 33 00:01:19,130 --> 00:01:21,850 Teraz, jak się okazuje, to było dawno temu postanowił 34 00:01:21,850 --> 00:01:24,310 że chcemy podzielić że zakres 32 bitów 35 00:01:24,310 --> 00:01:26,650 do ujemnych liczb całkowitych i całkowite dodatnie, 36 00:01:26,650 --> 00:01:28,390 każdy się pół zakresu. 37 00:01:28,390 --> 00:01:32,230 Tak więc zakres wartości, które reprezentujemy z zakresu liczb całkowitych od negatywnej 2 38 00:01:32,230 --> 00:01:36,520 do 31 mocy do 2 do 31. Moc minus 1, 39 00:01:36,520 --> 00:01:38,190 spowodować trzeba również miejsce na 0. 40 00:01:38,190 --> 00:01:41,650 >> Więc w zasadzie połowa możliwych wartości można zmieścić w int są negatywne, 41 00:01:41,650 --> 00:01:42,610 i pół są pozytywne. 42 00:01:42,610 --> 00:01:47,270 I mniej więcej tutaj, to jest o negatywne 2 mld do około 2 mld pozytywnej. 43 00:01:47,270 --> 00:01:50,207 Lub dać kilkaset milionów. 44 00:01:50,207 --> 00:01:52,290 Więc to, co można zmieścić w zmiennej całkowitej. 45 00:01:52,290 --> 00:01:55,490 Teraz mamy także coś nazywa się liczba całkowita bez znaku. 46 00:01:55,490 --> 00:01:59,220 Teraz unsigned int nie są oddzielny typ zmiennej. 47 00:01:59,220 --> 00:02:01,590 Raczej bez znaku jest co nazywa się kwalifikator. 48 00:02:01,590 --> 00:02:04,990 Modyfikuje dane typ liczby całkowitej nieznacznie. 49 00:02:04,990 --> 00:02:07,850 >> I w tym przypadku, co niepodpisane means-- i można również 50 00:02:07,850 --> 00:02:11,530 używać niepodpisanych innych typów danych, całkowita nie jest jedyny. 51 00:02:11,530 --> 00:02:15,310 Co to skutecznie robi to dwuosobowe dodatni zakres wartości 52 00:02:15,310 --> 00:02:19,350 że liczba całkowita może przyjmować na kosztem nie pozwalając 53 00:02:19,350 --> 00:02:21,140 robienie na wartości ujemnych. 54 00:02:21,140 --> 00:02:25,400 Więc jeśli masz numery, które znasz będzie wyższa niż 2 mld euro, ale mniej 55 00:02:25,400 --> 00:02:31,280 niż 4 mld euro, na example-- który jest 2 do 32. power-- 56 00:02:31,280 --> 00:02:33,330 Może chcesz używać unsigned int, jeśli Ciebie 57 00:02:33,330 --> 00:02:35,050 że twoja wartość nie będzie ujemny. 58 00:02:35,050 --> 00:02:37,216 >> Będziesz od czasu do czasu mają stosowany do zmiennych niepodpisanych 59 00:02:37,216 --> 00:02:39,460 w CS50, dlatego wspominam go tutaj. 60 00:02:39,460 --> 00:02:43,830 Ale znowu, zakres wartości, które może reprezentować z liczba całkowita bez znaku 61 00:02:43,830 --> 00:02:48,240 jak do t regularną liczbę całkowitą, to 0 do 2 do potęgi 32 minus 1, 62 00:02:48,240 --> 00:02:50,840 lub około 0 do 4 mld euro. 63 00:02:50,840 --> 00:02:53,730 Więc już skutecznie podwoiła pozytywne zakres, że można zmieścić, 64 00:02:53,730 --> 00:02:56,270 ale dałeś się wszystkim wartości ujemne. 65 00:02:56,270 --> 00:03:00,040 >> Teraz tak na marginesie, bez znaku Nie jest to tylko kwalifikator 66 00:03:00,040 --> 00:03:01,790 które możemy zobaczyć na Zmienne i ich typy. 67 00:03:01,790 --> 00:03:05,779 Są też rzeczy, zwane krótkie i długie i const. 68 00:03:05,779 --> 00:03:07,820 Const zobaczymy trochę nieco później w toku. 69 00:03:07,820 --> 00:03:10,830 Krótkie i długie, że prawdopodobnie nie będzie. 70 00:03:10,830 --> 00:03:12,830 >> Ale po prostu wiem, że nie są inne turnieje kwalifikacyjne. 71 00:03:12,830 --> 00:03:14,080 Niepodpisane nie jest jedyny. 72 00:03:14,080 --> 00:03:16,596 Ale to tylko jedno jesteśmy będziemy mówić o teraz. 73 00:03:16,596 --> 00:03:17,310 Więc wszystko w porządku. 74 00:03:17,310 --> 00:03:18,393 Więc omówiliśmy liczby całkowite. 75 00:03:18,393 --> 00:03:19,200 Co dalej? 76 00:03:19,200 --> 00:03:20,130 >> Znaków. 77 00:03:20,130 --> 00:03:23,620 Tak znaków stosuje się do zmiennych która będzie przechowywać pojedyncze znaki. 78 00:03:23,620 --> 00:03:24,850 Char jest skrótem od charakteru. 79 00:03:24,850 --> 00:03:27,870 I czasami można usłyszeć ludzie wymawiają to jak samochód. 80 00:03:27,870 --> 00:03:32,020 >> Więc znaków zawsze podjąć jedną bajt pamięci, która jest tylko 8 bitów. 81 00:03:32,020 --> 00:03:35,700 Więc to oznacza, że ​​tylko one mogą zmieścić wartości w zakresie ujemnym 2 82 00:03:35,700 --> 00:03:42,430 do siódmej potęgi lub ujemne 128, do 2 do 7 mocą minus 1, lub 127. 83 00:03:42,430 --> 00:03:45,710 >> Dzięki ASCII, to dawno temu postanowił sposób 84 00:03:45,710 --> 00:03:50,805 mapować te pozytywne numery od 0 do 127 różnych znaków 85 00:03:50,805 --> 00:03:52,182 że wszystko istnieje na naszej klawiaturze. 86 00:03:52,182 --> 00:03:54,640 Więc jak zobaczymy później w kurs, i prawdopodobnie będziesz 87 00:03:54,640 --> 00:03:57,700 przyjść do zapamiętania na niektóre punkt, kapitał A dla example-- 88 00:03:57,700 --> 00:04:00,732 kapitał charakter A-- mapy do numeru 65. 89 00:04:00,732 --> 00:04:02,940 A powodem tego jest bo to co jest to 90 00:04:02,940 --> 00:04:05,490 zostały przypisane przez standard ASCII. 91 00:04:05,490 --> 00:04:07,850 >> Małe litery A jest 97. 92 00:04:07,850 --> 00:04:11,900 Charakter 0 do kiedy faktycznie wpisz znak, nie 93 00:04:11,900 --> 00:04:13,532 reprezentującą liczbę od zera, wynosi 48. 94 00:04:13,532 --> 00:04:15,240 Dowiesz się kilka z nich, jak przejść. 95 00:04:15,240 --> 00:04:17,990 A ty na pewno się potrzebować je trochę później CS50. 96 00:04:17,990 --> 00:04:20,450 97 00:04:20,450 --> 00:04:23,390 >> Kolejnym ważnym typ danych jest liczb zmiennoprzecinkowych. 98 00:04:23,390 --> 00:04:26,100 Więc liczb zmiennoprzecinkowych są znany także jako liczb rzeczywistych. 99 00:04:26,100 --> 00:04:28,850 Są w zasadzie numery, które mają przecinek w nich. 100 00:04:28,850 --> 00:04:33,360 Zmiennoprzecinkowych jak liczby całkowite są również 101 00:04:33,360 --> 00:04:36,090 zawarte w 4 bajtów pamięci. 102 00:04:36,090 --> 00:04:37,580 Teraz nie ma żadnego wykresu tutaj. 103 00:04:37,580 --> 00:04:40,890 Nie ma linii numer, ponieważ opisujące szereg pływaka 104 00:04:40,890 --> 00:04:44,550 nie jest do końca jasne i intuicyjne. 105 00:04:44,550 --> 00:04:47,350 >> Wystarczy powiedzieć ci mieć 32 bity do pracy. 106 00:04:47,350 --> 00:04:49,730 A jeśli masz numer jak pi, która ma 107 00:04:49,730 --> 00:04:55,510 część całkowita 3 i zmiennoprzecinkowych część punktu, lub część dziesiętną 0,14159, 108 00:04:55,510 --> 00:04:58,735 i tak dalej, trzeba być w stanie reprezentować wszystkie it-- 109 00:04:58,735 --> 00:05:02,420 część całkowitą i część dziesiętną. 110 00:05:02,420 --> 00:05:04,550 >> Więc co myślisz, że może oznaczać? 111 00:05:04,550 --> 00:05:08,180 Jedną rzeczą jest to, że jeśli po przecinku część staje się coraz dłuższe, 112 00:05:08,180 --> 00:05:10,660 jeśli mam bardzo duży całkowita część, nie może 113 00:05:10,660 --> 00:05:13,090 być w stanie być tak precyzyjna z dziesiętnej. 114 00:05:13,090 --> 00:05:15,280 I to jest naprawdę ograniczenie pływaka. 115 00:05:15,280 --> 00:05:17,229 >> Pływa problem dokładności. 116 00:05:17,229 --> 00:05:19,270 Mamy tylko 32 bity na pracować, więc możemy tylko 117 00:05:19,270 --> 00:05:22,510 być tak dokładnie z naszej strony po przecinku. 118 00:05:22,510 --> 00:05:27,300 Nie możemy koniecznie mieć po przecinku Część precyzyjne do 100 lub 200 cyfr, 119 00:05:27,300 --> 00:05:29,710 ponieważ mamy tylko 32 bity pracować. 120 00:05:29,710 --> 00:05:31,590 Więc to jest to ograniczenie pływaka. 121 00:05:31,590 --> 00:05:33,590 >> Teraz na szczęście nie ma inny typ danych o nazwie 122 00:05:33,590 --> 00:05:36,530 podwójne, które nieco zajmuje się tym problemem. 123 00:05:36,530 --> 00:05:39,980 Podwójna, jak pływaki są również stosowane do przechowywania liczb rzeczywistych lub zmiennoprzecinkowych 124 00:05:39,980 --> 00:05:40,840 wartości. 125 00:05:40,840 --> 00:05:44,340 Różnica polega na tym, że dwuosobowe są podwójnej precyzji. 126 00:05:44,340 --> 00:05:48,177 Mogą zmieścić 64 bity danych lub osiem bajtów. 127 00:05:48,177 --> 00:05:49,010 Co to znaczy? 128 00:05:49,010 --> 00:05:51,801 Cóż, oznacza to, że możemy być o wiele bardziej precyzyjne z punktu dziesiętnego. 129 00:05:51,801 --> 00:05:54,830 Zamiast PI siedmiu miejsca, być może, z pływakiem, 130 00:05:54,830 --> 00:05:56,710 możemy może mieć do 30 miejsc. 131 00:05:56,710 --> 00:05:59,824 Jeśli to jest ważne, warto używać podwójne zamiast pływaka. 132 00:05:59,824 --> 00:06:01,740 Zasadniczo, jeśli jesteś pracuje nad czymś tam gdzie 133 00:06:01,740 --> 00:06:06,540 o naprawdę dużo miejsca po przecinku i wiele precyzyjnie jest ważne 134 00:06:06,540 --> 00:06:08,630 prawdopodobnie chcesz należy stosować podwójnej overfloat. 135 00:06:08,630 --> 00:06:11,250 Teraz większość pracy w CS50, pływak powinien wystarczyć. 136 00:06:11,250 --> 00:06:15,340 Ale wiem, że podwaja istnieć jako sposób nieco czynienia z precyzją 137 00:06:15,340 --> 00:06:20,980 Problem, dając Ci dodatkowe 32 Bity do pracy dla swoich numerów. 138 00:06:20,980 --> 00:06:23,650 >> Teraz nie jest to typ danych. 139 00:06:23,650 --> 00:06:24,390 Jest to rodzaj. 140 00:06:24,390 --> 00:06:25,340 I to się nazywa nieważne. 141 00:06:25,340 --> 00:06:27,506 A mówię o tym tu, bo mamy chyba 142 00:06:27,506 --> 00:06:29,520 widziałem go kilka razy już w CS50. 143 00:06:29,520 --> 00:06:32,020 I można się zastanawiać, co w tym wszystkim chodzi. 144 00:06:32,020 --> 00:06:33,390 >> Więc nieważne jest typem. 145 00:06:33,390 --> 00:06:34,097 To nie istnieje. 146 00:06:34,097 --> 00:06:35,180 Ale nie jest to typ danych. 147 00:06:35,180 --> 00:06:39,350 >> Nie możemy utworzyć zmienną typu utratę wartości i przypisać do niego. 148 00:06:39,350 --> 00:06:42,519 Jednak funkcje, na przykład, może mieć typ void powrotną. 149 00:06:42,519 --> 00:06:45,060 Zasadniczo, jeśli widzisz funkcji że ma typ void powrotną, 150 00:06:45,060 --> 00:06:46,970 Oznacza to, że nie zwraca wartości. 151 00:06:46,970 --> 00:06:49,440 Można myśleć o wspólnym Funkcja które używaliśmy do tej pory 152 00:06:49,440 --> 00:06:52,780 w CS50, że nie zwraca wartości? 153 00:06:52,780 --> 00:06:54,700 >> Printf jest jeden. 154 00:06:54,700 --> 00:06:56,820 Printf w rzeczywistości nie coś dla ciebie wrócić. 155 00:06:56,820 --> 00:06:59,850 Wypisuje coś do ekran, i to jest w zasadzie 156 00:06:59,850 --> 00:07:01,650 efekt uboczny tego, co robi printf. 157 00:07:01,650 --> 00:07:03,620 Ale to nie daje wartość z powrotem. 158 00:07:03,620 --> 00:07:08,419 Nie uchwycić wynik i sklep to w jakiś zmiennej go użyć później. 159 00:07:08,419 --> 00:07:10,710 To po prostu drukuje coś ekran i gotowe. 160 00:07:10,710 --> 00:07:14,360 >> Tak więc możemy powiedzieć, że printf jest funkcją nieważne. 161 00:07:14,360 --> 00:07:16,450 To nic nie zwraca. 162 00:07:16,450 --> 00:07:18,580 >> Lista obwód Funkcja ta może być również nieważne. 163 00:07:18,580 --> 00:07:21,410 I widziałem też, że trochę w CS50 też. 164 00:07:21,410 --> 00:07:22,300 Int main nieważne. 165 00:07:22,300 --> 00:07:23,260 Czy to pierścień dzwon? 166 00:07:23,260 --> 00:07:24,080 167 00:07:24,080 --> 00:07:27,220 Zasadniczo, co to oznacza to, że Głównym nie bierze żadnych parametrów. 168 00:07:27,220 --> 00:07:29,520 Nie ma argument, że przejdzie do głównego. 169 00:07:29,520 --> 00:07:32,780 Teraz później zobaczymy, że nie ma sposób przekazywać argumenty do głównego, 170 00:07:32,780 --> 00:07:36,189 ale do tej pory to, co mamy postrzegane jest int main nieważne. 171 00:07:36,189 --> 00:07:37,730 Głównym prostu nie bierze żadnych argumentów. 172 00:07:37,730 --> 00:07:40,236 I tak możemy określić, że mówiąc nieważne. 173 00:07:40,236 --> 00:07:42,110 Po prostu jest bardzo wyraźnie o tym, 174 00:07:42,110 --> 00:07:44,430 to, że nie ma żadnych argumentów. 175 00:07:44,430 --> 00:07:47,160 >> Więc na razie wystarczy powiedzieć, że pustkę w zasadzie 176 00:07:47,160 --> 00:07:50,789 powinien po prostu służyć jako miejsce dla Ciebie, jak myśleć o niczym. 177 00:07:50,789 --> 00:07:52,080 To naprawdę nie robi nic. 178 00:07:52,080 --> 00:07:53,550 Nie ma wartość zwracana tutaj. 179 00:07:53,550 --> 00:07:54,770 Nie ma tutaj żadnych parametrów. 180 00:07:54,770 --> 00:07:55,709 To nieważne. 181 00:07:55,709 --> 00:07:57,250 To trochę bardziej skomplikowane niż to. 182 00:07:57,250 --> 00:08:00,640 Ale to powinno wystarczyć lepsza część kursu. 183 00:08:00,640 --> 00:08:05,010 I mam nadzieję, że teraz masz trochę nieco więcej pojęcia o tym, co nieważne jest. 184 00:08:05,010 --> 00:08:08,460 >> Tak więc są to pięć rodzajów będziesz Spotkanie, które są wbudowane do C. 185 00:08:08,460 --> 00:08:10,670 Ale w CS50 mamy także biblioteka. 186 00:08:10,670 --> 00:08:13,550 CS50.h, które można uwzględnić. 187 00:08:13,550 --> 00:08:15,930 I które zapewni Państwu z dwoma dodatkowymi rodzajami 188 00:08:15,930 --> 00:08:18,280 że prawdopodobnie będziesz w stanie do wykorzystania na swoich zadaniach, 189 00:08:18,280 --> 00:08:21,210 lub po prostu pracuje na ogół programowania. 190 00:08:21,210 --> 00:08:23,030 >> Pierwszym z nich jest bool. 191 00:08:23,030 --> 00:08:26,780 Więc Boolean typ danych, bool służy do zmiennych 192 00:08:26,780 --> 00:08:28,114 która będzie przechowywać wartość logiczną. 193 00:08:28,114 --> 00:08:29,863 Jeśli kiedykolwiek słyszałem termin ten przed, 194 00:08:29,863 --> 00:08:31,960 Może wie, że Boolean Wartość jest w stanie tylko 195 00:08:31,960 --> 00:08:34,440 posiadających dwa różne różne wartości. 196 00:08:34,440 --> 00:08:35,872 True i false. 197 00:08:35,872 --> 00:08:37,580 Teraz to wydaje się dość podstawowym, prawda? 198 00:08:37,580 --> 00:08:40,496 Jest to swego rodzaju zaskoczeniem, że to nie istnieje w C jak to wbudowanej. 199 00:08:40,496 --> 00:08:42,640 I w wielu współczesnych językach, oczywiście, Boolean 200 00:08:42,640 --> 00:08:45,390 to standardowy domyślny typ danych. 201 00:08:45,390 --> 00:08:47,192 Ale w C, nie są w rzeczywistości. 202 00:08:47,192 --> 00:08:48,400 Ale stworzyliśmy go dla Ciebie. 203 00:08:48,400 --> 00:08:51,910 Więc jeśli kiedykolwiek potrzebne do tworzenia zmienną, której typ jest bool, 204 00:08:51,910 --> 00:08:55,230 tylko pamiętaj, aby #include CS50.h na początku programu, 205 00:08:55,230 --> 00:08:57,800 i będziesz w stanie stworzyć Zmienne typu bool. 206 00:08:57,800 --> 00:09:02,095 >> Pominięcie #include CS50.h i zaczniesz używać zmiennych typu Boolean, 207 00:09:02,095 --> 00:09:04,970 mogą wystąpić pewne problemy kiedy kompilacji programu. 208 00:09:04,970 --> 00:09:06,490 Więc po prostu być na poszukiwania, które. 209 00:09:06,490 --> 00:09:11,180 A może po prostu naprawić problemy przez funta tym CS50.h. 210 00:09:11,180 --> 00:09:14,590 >> Innym ważnym typ danych, które zapewnienie dla Ciebie w bibliotece CS50 211 00:09:14,590 --> 00:09:15,670 jest ciąg. 212 00:09:15,670 --> 00:09:17,130 Więc co jest ciąg? 213 00:09:17,130 --> 00:09:18,520 Struny są naprawdę tylko słowa. 214 00:09:18,520 --> 00:09:20,000 Są zbiory znaków. 215 00:09:20,000 --> 00:09:20,640 Są słowa. 216 00:09:20,640 --> 00:09:21,390 Są zdania. 217 00:09:21,390 --> 00:09:22,480 Są paragrafy. 218 00:09:22,480 --> 00:09:25,850 Może być całe książki, nawet. 219 00:09:25,850 --> 00:09:29,690 >> Bardzo krótkie, aby bardzo długo seria znaków. 220 00:09:29,690 --> 00:09:34,310 Jeśli musisz używać łańcuchów, Na przykład, do przechowywania słowo 221 00:09:34,310 --> 00:09:37,609 tylko pamiętaj, aby to CS50.h na początku programu 222 00:09:37,609 --> 00:09:38,900 więc można użyć typu ciąg. 223 00:09:38,900 --> 00:09:43,910 I wtedy można tworzyć zmienne którego typ danych to ciąg. 224 00:09:43,910 --> 00:09:46,160 Teraz później w toku, Będziemy również zobaczyć, że to jest 225 00:09:46,160 --> 00:09:47,752 nie cała historia, albo. 226 00:09:47,752 --> 00:09:49,460 Będziemy napotkać rzeczy zwane struktury, 227 00:09:49,460 --> 00:09:54,249 które pozwalają na grupy, co może być liczbą całkowitą, a ciąg w jedną całość. 228 00:09:54,249 --> 00:09:56,290 I możemy użyć dla jakiś cel, który może 229 00:09:56,290 --> 00:09:57,750 się przydać później w toku. 230 00:09:57,750 --> 00:09:59,500 >> I my również dowiedzieć się o określonych typów, 231 00:09:59,500 --> 00:10:01,720 które pozwalają na tworzenie własne typy danych. 232 00:10:01,720 --> 00:10:03,060 Nie musimy się martwić o tym teraz. 233 00:10:03,060 --> 00:10:04,550 Ale po prostu wiem, że to jest coś na horyzoncie, 234 00:10:04,550 --> 00:10:07,633 że nie ma dużo więcej do tego całość Typ rzeczą, niż mówię ci po prostu 235 00:10:07,633 --> 00:10:08,133 teraz. 236 00:10:08,133 --> 00:10:10,591 Więc teraz, że nauczyłem się Trochę o podstawowych danych 237 00:10:10,591 --> 00:10:14,230 rodzaje i typy danych CS50, niech rozmawiać o tym, jak pracować ze zmiennymi 238 00:10:14,230 --> 00:10:18,530 i tworzyć je za pomocą tych Typy danych w naszych programach. 239 00:10:18,530 --> 00:10:22,670 Jeśli chcesz utworzyć zmienną, wszystko, co musisz zrobić, to dwie rzeczy. 240 00:10:22,670 --> 00:10:24,147 >> Po pierwsze, trzeba nadać jej typ. 241 00:10:24,147 --> 00:10:26,230 Drugą rzeczą, którą musisz zrobić, to dać mu nazwę. 242 00:10:26,230 --> 00:10:28,740 Gdy już to zrobisz i uderzył średnik na końcu tej linii 243 00:10:28,740 --> 00:10:29,830 utworzeniu zmiennej. 244 00:10:29,830 --> 00:10:32,370 >> Więc oto dwa przykłady. 245 00:10:32,370 --> 00:10:35,744 Liczba int; char litera ;. 246 00:10:35,744 --> 00:10:36,660 Co ja zrobiłem tutaj? 247 00:10:36,660 --> 00:10:38,110 Stworzyłem dwie zmienne. 248 00:10:38,110 --> 00:10:40,190 >> Pierwszy zmienna na Nazwa jest liczba. 249 00:10:40,190 --> 00:10:44,830 I numer jest w stanie utrzymać liczbę całkowitą wpisz wartości, ponieważ jego typ jest int. 250 00:10:44,830 --> 00:10:48,040 List jest inną zmienną które mogą posiadać znaki 251 00:10:48,040 --> 00:10:50,240 ponieważ jego typ danych to char. 252 00:10:50,240 --> 00:10:51,772 >> Całkiem proste, prawda? 253 00:10:51,772 --> 00:10:53,480 Jeśli znajdziesz się W sytuacji, w której 254 00:10:53,480 --> 00:10:56,250 musisz utworzyć wiele Zmienne tego samego typu, 255 00:10:56,250 --> 00:10:58,740 trzeba tylko określić nazwa typu raz. 256 00:10:58,740 --> 00:11:01,600 Następnie wystarczy wymienić tyle zmiennych tego typu, jak trzeba. 257 00:11:01,600 --> 00:11:04,230 >> Więc mogłem na przykład tutaj w tej trzeciej linii kodu, 258 00:11:04,230 --> 00:11:07,420 powiedzieć, int height ;, nowej linii. 259 00:11:07,420 --> 00:11:08,291 Szerokość int ;. 260 00:11:08,291 --> 00:11:09,290 I to będzie działać też. 261 00:11:09,290 --> 00:11:12,039 Chciałbym jeszcze się dwie zmienne nazywa wysokości i szerokości, z których każda 262 00:11:12,039 --> 00:11:12,730 jest liczbą całkowitą. 263 00:11:12,730 --> 00:11:16,970 Ale wolno mi, co do składni C, skonsolidować je w jednej linii. 264 00:11:16,970 --> 00:11:20,230 Wysokość int, szerokość; To jest to samo. 265 00:11:20,230 --> 00:11:23,900 Stworzyłem dwie zmienne, jeden o nazwie Wysokość ten nazywany szerokości, z których obydwa 266 00:11:23,900 --> 00:11:26,730 są zdolne do gospodarstwa Wartości typu Integer. 267 00:11:26,730 --> 00:11:30,920 >> Podobnie tutaj, mogę stworzyć trzy zmiennoprzecinkowych na raz. 268 00:11:30,920 --> 00:11:33,350 Mogę być może utworzyć zmienną nazywa pierwiastek kwadratowy z 2-- 269 00:11:33,350 --> 00:11:35,766 co prawdopodobnie będzie w końcu przytrzymaj point-- pływające 270 00:11:35,766 --> 00:11:39,222 że reprezentacja placu Korzeń 2-- pierwiastek z 3, i pi. 271 00:11:39,222 --> 00:11:41,180 Mogłem zrobić to w trzech oddzielnych linii. 272 00:11:41,180 --> 00:11:47,690 Float, pierwiastek kwadratowy 2; Float pierwiastek kwadratowy 3; unosić pi; i że będzie działać zbyt. 273 00:11:47,690 --> 00:11:50,590 >> Ale znowu, mogę tylko konsolidacja to w jednej linii kodu. 274 00:11:50,590 --> 00:11:54,050 Sprawia, że ​​rzeczy trochę krótszy, a nie jako niezgrabne. 275 00:11:54,050 --> 00:11:57,259 >> Teraz w ogóle, to jest dobry projekt, aby tylko zadeklarować zmienną, gdy jej potrzebujesz. 276 00:11:57,259 --> 00:11:59,050 I porozmawiamy trochę nieco więcej na ten temat 277 00:11:59,050 --> 00:12:00,945 później w toku gdy omawiamy zakres. 278 00:12:00,945 --> 00:12:03,320 Więc nie koniecznie tworzenie wszystkich zmiennych 279 00:12:03,320 --> 00:12:05,990 na początek programu, w którym niektórzy ludzie mogą zrobić w przeszłości, 280 00:12:05,990 --> 00:12:08,700 lub był z pewnością bardzo często kodowania praktyce wiele lat temu 281 00:12:08,700 --> 00:12:11,700 podczas pracy z C może po prostu Aby utworzyć zmienną rację, kiedy 282 00:12:11,700 --> 00:12:13,140 Potrzebujesz tego. 283 00:12:13,140 --> 00:12:13,640 W porządku. 284 00:12:13,640 --> 00:12:15,150 Dlatego stworzyliśmy zmienne. 285 00:12:15,150 --> 00:12:16,790 W jaki sposób z nich korzystać? 286 00:12:16,790 --> 00:12:18,650 Po deklarujemy zmienna, nie musimy 287 00:12:18,650 --> 00:12:21,237 aby określić typ danych tej zmiennej więcej. 288 00:12:21,237 --> 00:12:24,070 W rzeczywistości, jeśli nie tak, to może skończyć z niektórych dziwnych konsekwencji 289 00:12:24,070 --> 00:12:25,490 że będziemy trochę koloryzować teraz. 290 00:12:25,490 --> 00:12:27,365 Ale wystarczy powiedzieć, dziwne rzeczy idą 291 00:12:27,365 --> 00:12:30,740 rozpocząć się dzieje, jeśli przypadkowo ponownie zadeklarować zmienne o tej samej nazwie 292 00:12:30,740 --> 00:12:32,210 kółko. 293 00:12:32,210 --> 00:12:33,882 >> Więc mam cztery linie kodu. 294 00:12:33,882 --> 00:12:36,090 A ja mam kilka Komentarze Nie ma po prostu wskazujące 295 00:12:36,090 --> 00:12:37,840 co się dzieje na każdy wiersz po prostu pomóc 296 00:12:37,840 --> 00:12:40,520 można się znajduje w tym, co się dzieje. 297 00:12:40,520 --> 00:12:41,520 Więc int liczba ;. 298 00:12:41,520 --> 00:12:42,520 Widziałeś, że wcześniej. 299 00:12:42,520 --> 00:12:44,000 To jest deklaracja zmiennej. 300 00:12:44,000 --> 00:12:46,670 >> Mam teraz tworzone zmienną numer dzwoniący to 301 00:12:46,670 --> 00:12:48,970 w stanie utrzymać wartości typu INT. 302 00:12:48,970 --> 00:12:50,210 Mam ogłosił go. 303 00:12:50,210 --> 00:12:53,770 >> Następna linia jestem przypisywania wartość do liczby. 304 00:12:53,770 --> 00:12:54,992 Liczba jest równa 17. 305 00:12:54,992 --> 00:12:55,950 Co się tam dzieje? 306 00:12:55,950 --> 00:12:58,880 Kładę numer 17 wewnątrz tej zmiennej. 307 00:12:58,880 --> 00:13:02,760 >> Więc jeśli kiedykolwiek następnie wydrukować, co zawartość numeru są później, 308 00:13:02,760 --> 00:13:04,030 powiedzą mi, że to 17. 309 00:13:04,030 --> 00:13:07,030 Tak już zadeklarowaniu zmiennej, a potem przypisaniu go. 310 00:13:07,030 --> 00:13:10,570 >> Możemy powtórzyć proces dzięki char liście ;. 311 00:13:10,570 --> 00:13:11,640 To oświadczenie. 312 00:13:11,640 --> 00:13:14,010 List równa kapitału H. To zadanie. 313 00:13:14,010 --> 00:13:16,030 Całkiem proste, zbyt. 314 00:13:16,030 --> 00:13:18,319 >> Teraz proces ten może wydawać trochę głupie. 315 00:13:18,319 --> 00:13:20,110 Dlaczego to robimy w dwóch linii kodu? 316 00:13:20,110 --> 00:13:21,401 Czy istnieje lepszy sposób to zrobić? 317 00:13:21,401 --> 00:13:22,250 W rzeczywistości nie jest. 318 00:13:22,250 --> 00:13:24,375 Czasami można zobaczyć to nazywa inicjalizacji. 319 00:13:24,375 --> 00:13:28,446 To kiedy zadeklarować zmienną i przypisanie wartości w tym samym czasie. 320 00:13:28,446 --> 00:13:30,320 To jest rzeczywiście dość wspólna sprawa. 321 00:13:30,320 --> 00:13:32,870 Podczas tworzenia zmiennej, zwykle chcesz go mieć podstawową wartość. 322 00:13:32,870 --> 00:13:34,330 Nawet jeśli jest to 0 lub coś. 323 00:13:34,330 --> 00:13:36,180 Wystarczy dać mu wartość. 324 00:13:36,180 --> 00:13:38,360 >> Możesz zainicjować zmienną. 325 00:13:38,360 --> 00:13:42,320 Int ilość wynosi 17 jest taka sama, jak Pierwsze dwie linie kodu w górę powyżej. 326 00:13:42,320 --> 00:13:46,829 Litera Char równa h jest taka sama jak Trzecia i czwarta linia kodu powyżej. 327 00:13:46,829 --> 00:13:49,620 Najważniejszym wynos tutaj gdy mamy do deklarowania i przypisywania 328 00:13:49,620 --> 00:13:51,740 Zmienne jest po mamy ogłosił go, zawiadomienia 329 00:13:51,740 --> 00:13:53,700 Nie będę ponownie przy użyciu typu danych. 330 00:13:53,700 --> 00:13:57,916 Nie mówię, int liczba wynosi 17 na druga linia kodu, np. 331 00:13:57,916 --> 00:13:59,290 Mówię tylko, że liczba jest równa 17. 332 00:13:59,290 --> 00:14:02,537 >> Ponownie, ponowne zadeklarowanie zmiennej po już oświadczył, może to prowadzić 333 00:14:02,537 --> 00:14:03,620 z jakimś dziwnym konsekwencji. 334 00:14:03,620 --> 00:14:05,950 Więc po prostu uważać na to. 335 00:14:05,950 --> 00:14:06,660 >> Jestem Doug Lloyd. 336 00:14:06,660 --> 00:14:08,870 I to jest CS50. 337 00:14:08,870 --> 00:14:10,499