[MUZYKI] GŁOŚNIK: Wszystko w porządku. Więc porozmawiajmy o innej rzecz, która jest swego rodzaju unikatowe dla C, czyli typy danych i zmienne. Kiedy mówię, unikalne dla C, naprawdę oznaczać tylko w kontekście, jeśli już programistą na naprawdę długi czas, prawdopodobnie nie mam Pracował z typów danych jeśli już wykorzystane nowoczesne języki programowania. Nowoczesne języki, takie jak PHP i JavaScript, które będziemy również zobaczyć trochę później w toku, w rzeczywistości nie trzeba określać typ danych zmiennej kiedy go używać. Wystarczy zadeklarować ją i zacząć go używać. Jeśli jest liczbą całkowitą, to Wiem, że to liczba całkowita. Jeśli jest to znak, że to wie, że to znak. Jeśli jest to słowo, to wie jest to ciąg znaków, tzw. Jednak w C, który jest starszy język, musimy określić dane typ każdej zmiennej które tworzą razem pierwszy że używamy tej zmiennej. Tak więc C jest wyposażony w niektóre wbudowane typy danych. I zaznajomimy się niektóre z nich. A następnie potem będziemy również porozmawiać trochę o niektórych typów danych że napisałem dla ciebie, dzięki czemu można z nich korzystać w CS50. Pierwszym z nich jest int. Typ danych int używanego dla zmiennych która będzie przechowywać wartości całkowite. Tak, 1, 2, 3, minus 1, 2, 3 i tak dalej. Liczby całkowite, które jest coś, czego Należy pamiętać, quizu, zawsze trwać cztery bajty pamięci, która ma 32 bitów. Istnieje osiem bitów bajtu. Oznacza to więc, że w zakresie wartości, które można przechowywać liczba całkowita jest ograniczona, co może mieścić się w 32 bity wartości informacji. Teraz, jak się okazuje, to było dawno temu postanowił że chcemy podzielić że zakres 32 bitów do ujemnych liczb całkowitych i całkowite dodatnie, każdy się pół zakresu. Tak więc zakres wartości, które reprezentujemy z zakresu liczb całkowitych od negatywnej 2 do 31 mocy do 2 do 31. Moc minus 1, spowodować trzeba również miejsce na 0. Więc w zasadzie połowa możliwych wartości można zmieścić w int są negatywne, i pół są pozytywne. I mniej więcej tutaj, to jest o negatywne 2 mld do około 2 mld pozytywnej. Lub dać kilkaset milionów. Więc to, co można zmieścić w zmiennej całkowitej. Teraz mamy także coś nazywa się liczba całkowita bez znaku. Teraz unsigned int nie są oddzielny typ zmiennej. Raczej bez znaku jest co nazywa się kwalifikator. Modyfikuje dane typ liczby całkowitej nieznacznie. I w tym przypadku, co niepodpisane means-- i można również używać niepodpisanych innych typów danych, całkowita nie jest jedyny. Co to skutecznie robi to dwuosobowe dodatni zakres wartości że liczba całkowita może przyjmować na kosztem nie pozwalając robienie na wartości ujemnych. Więc jeśli masz numery, które znasz będzie wyższa niż 2 mld euro, ale mniej niż 4 mld euro, na example-- który jest 2 do 32. power-- Może chcesz używać unsigned int, jeśli Ciebie że twoja wartość nie będzie ujemny. Będziesz od czasu do czasu mają stosowany do zmiennych niepodpisanych w CS50, dlatego wspominam go tutaj. Ale znowu, zakres wartości, które może reprezentować z liczba całkowita bez znaku jak do t regularną liczbę całkowitą, to 0 do 2 do potęgi 32 minus 1, lub około 0 do 4 mld euro. Więc już skutecznie podwoiła pozytywne zakres, że można zmieścić, ale dałeś się wszystkim wartości ujemne. Teraz tak na marginesie, bez znaku Nie jest to tylko kwalifikator które możemy zobaczyć na Zmienne i ich typy. Są też rzeczy, zwane krótkie i długie i const. Const zobaczymy trochę nieco później w toku. Krótkie i długie, że prawdopodobnie nie będzie. Ale po prostu wiem, że nie są inne turnieje kwalifikacyjne. Niepodpisane nie jest jedyny. Ale to tylko jedno jesteśmy będziemy mówić o teraz. Więc wszystko w porządku. Więc omówiliśmy liczby całkowite. Co dalej? Znaków. Tak znaków stosuje się do zmiennych która będzie przechowywać pojedyncze znaki. Char jest skrótem od charakteru. I czasami można usłyszeć ludzie wymawiają to jak samochód. Więc znaków zawsze podjąć jedną bajt pamięci, która jest tylko 8 bitów. Więc to oznacza, że ​​tylko one mogą zmieścić wartości w zakresie ujemnym 2 do siódmej potęgi lub ujemne 128, do 2 do 7 mocą minus 1, lub 127. Dzięki ASCII, to dawno temu postanowił sposób mapować te pozytywne numery od 0 do 127 różnych znaków że wszystko istnieje na naszej klawiaturze. Więc jak zobaczymy później w kurs, i prawdopodobnie będziesz przyjść do zapamiętania na niektóre punkt, kapitał A dla example-- kapitał charakter A-- mapy do numeru 65. A powodem tego jest bo to co jest to zostały przypisane przez standard ASCII. Małe litery A jest 97. Charakter 0 do kiedy faktycznie wpisz znak, nie reprezentującą liczbę od zera, wynosi 48. Dowiesz się kilka z nich, jak przejść. A ty na pewno się potrzebować je trochę później CS50. Kolejnym ważnym typ danych jest liczb zmiennoprzecinkowych. Więc liczb zmiennoprzecinkowych są znany także jako liczb rzeczywistych. Są w zasadzie numery, które mają przecinek w nich. Zmiennoprzecinkowych jak liczby całkowite są również zawarte w 4 bajtów pamięci. Teraz nie ma żadnego wykresu tutaj. Nie ma linii numer, ponieważ opisujące szereg pływaka nie jest do końca jasne i intuicyjne. Wystarczy powiedzieć ci mieć 32 bity do pracy. A jeśli masz numer jak pi, która ma część całkowita 3 i zmiennoprzecinkowych część punktu, lub część dziesiętną 0,14159, i tak dalej, trzeba być w stanie reprezentować wszystkie it-- część całkowitą i część dziesiętną. Więc co myślisz, że może oznaczać? Jedną rzeczą jest to, że jeśli po przecinku część staje się coraz dłuższe, jeśli mam bardzo duży całkowita część, nie może być w stanie być tak precyzyjna z dziesiętnej. I to jest naprawdę ograniczenie pływaka. Pływa problem dokładności. Mamy tylko 32 bity na pracować, więc możemy tylko być tak dokładnie z naszej strony po przecinku. Nie możemy koniecznie mieć po przecinku Część precyzyjne do 100 lub 200 cyfr, ponieważ mamy tylko 32 bity pracować. Więc to jest to ograniczenie pływaka. Teraz na szczęście nie ma inny typ danych o nazwie podwójne, które nieco zajmuje się tym problemem. Podwójna, jak pływaki są również stosowane do przechowywania liczb rzeczywistych lub zmiennoprzecinkowych wartości. Różnica polega na tym, że dwuosobowe są podwójnej precyzji. Mogą zmieścić 64 bity danych lub osiem bajtów. Co to znaczy? Cóż, oznacza to, że możemy być o wiele bardziej precyzyjne z punktu dziesiętnego. Zamiast PI siedmiu miejsca, być może, z pływakiem, możemy może mieć do 30 miejsc. Jeśli to jest ważne, warto używać podwójne zamiast pływaka. Zasadniczo, jeśli jesteś pracuje nad czymś tam gdzie o naprawdę dużo miejsca po przecinku i wiele precyzyjnie jest ważne prawdopodobnie chcesz należy stosować podwójnej overfloat. Teraz większość pracy w CS50, pływak powinien wystarczyć. Ale wiem, że podwaja istnieć jako sposób nieco czynienia z precyzją Problem, dając Ci dodatkowe 32 Bity do pracy dla swoich numerów. Teraz nie jest to typ danych. Jest to rodzaj. I to się nazywa nieważne. A mówię o tym tu, bo mamy chyba widziałem go kilka razy już w CS50. I można się zastanawiać, co w tym wszystkim chodzi. Więc nieważne jest typem. To nie istnieje. Ale nie jest to typ danych. Nie możemy utworzyć zmienną typu utratę wartości i przypisać do niego. Jednak funkcje, na przykład, może mieć typ void powrotną. Zasadniczo, jeśli widzisz funkcji że ma typ void powrotną, Oznacza to, że nie zwraca wartości. Można myśleć o wspólnym Funkcja które używaliśmy do tej pory w CS50, że nie zwraca wartości? Printf jest jeden. Printf w rzeczywistości nie coś dla ciebie wrócić. Wypisuje coś do ekran, i to jest w zasadzie efekt uboczny tego, co robi printf. Ale to nie daje wartość z powrotem. Nie uchwycić wynik i sklep to w jakiś zmiennej go użyć później. To po prostu drukuje coś ekran i gotowe. Tak więc możemy powiedzieć, że printf jest funkcją nieważne. To nic nie zwraca. Lista obwód Funkcja ta może być również nieważne. I widziałem też, że trochę w CS50 też. Int main nieważne. Czy to pierścień dzwon? Zasadniczo, co to oznacza to, że Głównym nie bierze żadnych parametrów. Nie ma argument, że przejdzie do głównego. Teraz później zobaczymy, że nie ma sposób przekazywać argumenty do głównego, ale do tej pory to, co mamy postrzegane jest int main nieważne. Głównym prostu nie bierze żadnych argumentów. I tak możemy określić, że mówiąc nieważne. Po prostu jest bardzo wyraźnie o tym, to, że nie ma żadnych argumentów. Więc na razie wystarczy powiedzieć, że pustkę w zasadzie powinien po prostu służyć jako miejsce dla Ciebie, jak myśleć o niczym. To naprawdę nie robi nic. Nie ma wartość zwracana tutaj. Nie ma tutaj żadnych parametrów. To nieważne. To trochę bardziej skomplikowane niż to. Ale to powinno wystarczyć lepsza część kursu. I mam nadzieję, że teraz masz trochę nieco więcej pojęcia o tym, co nieważne jest. Tak więc są to pięć rodzajów będziesz Spotkanie, które są wbudowane do C. Ale w CS50 mamy także biblioteka. CS50.h, które można uwzględnić. I które zapewni Państwu z dwoma dodatkowymi rodzajami że prawdopodobnie będziesz w stanie do wykorzystania na swoich zadaniach, lub po prostu pracuje na ogół programowania. Pierwszym z nich jest bool. Więc Boolean typ danych, bool służy do zmiennych która będzie przechowywać wartość logiczną. Jeśli kiedykolwiek słyszałem termin ten przed, Może wie, że Boolean Wartość jest w stanie tylko posiadających dwa różne różne wartości. True i false. Teraz to wydaje się dość podstawowym, prawda? Jest to swego rodzaju zaskoczeniem, że to nie istnieje w C jak to wbudowanej. I w wielu współczesnych językach, oczywiście, Boolean to standardowy domyślny typ danych. Ale w C, nie są w rzeczywistości. Ale stworzyliśmy go dla Ciebie. Więc jeśli kiedykolwiek potrzebne do tworzenia zmienną, której typ jest bool, tylko pamiętaj, aby #include CS50.h na początku programu, i będziesz w stanie stworzyć Zmienne typu bool. Pominięcie #include CS50.h i zaczniesz używać zmiennych typu Boolean, mogą wystąpić pewne problemy kiedy kompilacji programu. Więc po prostu być na poszukiwania, które. A może po prostu naprawić problemy przez funta tym CS50.h. Innym ważnym typ danych, które zapewnienie dla Ciebie w bibliotece CS50 jest ciąg. Więc co jest ciąg? Struny są naprawdę tylko słowa. Są zbiory znaków. Są słowa. Są zdania. Są paragrafy. Może być całe książki, nawet. Bardzo krótkie, aby bardzo długo seria znaków. Jeśli musisz używać łańcuchów, Na przykład, do przechowywania słowo tylko pamiętaj, aby to CS50.h na początku programu więc można użyć typu ciąg. I wtedy można tworzyć zmienne którego typ danych to ciąg. Teraz później w toku, Będziemy również zobaczyć, że to jest nie cała historia, albo. Będziemy napotkać rzeczy zwane struktury, które pozwalają na grupy, co może być liczbą całkowitą, a ciąg w jedną całość. I możemy użyć dla jakiś cel, który może się przydać później w toku. I my również dowiedzieć się o określonych typów, które pozwalają na tworzenie własne typy danych. Nie musimy się martwić o tym teraz. Ale po prostu wiem, że to jest coś na horyzoncie, że nie ma dużo więcej do tego całość Typ rzeczą, niż mówię ci po prostu teraz. Więc teraz, że nauczyłem się Trochę o podstawowych danych rodzaje i typy danych CS50, niech rozmawiać o tym, jak pracować ze zmiennymi i tworzyć je za pomocą tych Typy danych w naszych programach. Jeśli chcesz utworzyć zmienną, wszystko, co musisz zrobić, to dwie rzeczy. Po pierwsze, trzeba nadać jej typ. Drugą rzeczą, którą musisz zrobić, to dać mu nazwę. Gdy już to zrobisz i uderzył średnik na końcu tej linii utworzeniu zmiennej. Więc oto dwa przykłady. Liczba int; char litera ;. Co ja zrobiłem tutaj? Stworzyłem dwie zmienne. Pierwszy zmienna na Nazwa jest liczba. I numer jest w stanie utrzymać liczbę całkowitą wpisz wartości, ponieważ jego typ jest int. List jest inną zmienną które mogą posiadać znaki ponieważ jego typ danych to char. Całkiem proste, prawda? Jeśli znajdziesz się W sytuacji, w której musisz utworzyć wiele Zmienne tego samego typu, trzeba tylko określić nazwa typu raz. Następnie wystarczy wymienić tyle zmiennych tego typu, jak trzeba. Więc mogłem na przykład tutaj w tej trzeciej linii kodu, powiedzieć, int height ;, nowej linii. Szerokość int ;. I to będzie działać też. Chciałbym jeszcze się dwie zmienne nazywa wysokości i szerokości, z których każda jest liczbą całkowitą. Ale wolno mi, co do składni C, skonsolidować je w jednej linii. Wysokość int, szerokość; To jest to samo. Stworzyłem dwie zmienne, jeden o nazwie Wysokość ten nazywany szerokości, z których obydwa są zdolne do gospodarstwa Wartości typu Integer. Podobnie tutaj, mogę stworzyć trzy zmiennoprzecinkowych na raz. Mogę być może utworzyć zmienną nazywa pierwiastek kwadratowy z 2-- co prawdopodobnie będzie w końcu przytrzymaj point-- pływające że reprezentacja placu Korzeń 2-- pierwiastek z 3, i pi. Mogłem zrobić to w trzech oddzielnych linii. Float, pierwiastek kwadratowy 2; Float pierwiastek kwadratowy 3; unosić pi; i że będzie działać zbyt. Ale znowu, mogę tylko konsolidacja to w jednej linii kodu. Sprawia, że ​​rzeczy trochę krótszy, a nie jako niezgrabne. Teraz w ogóle, to jest dobry projekt, aby tylko zadeklarować zmienną, gdy jej potrzebujesz. I porozmawiamy trochę nieco więcej na ten temat później w toku gdy omawiamy zakres. Więc nie koniecznie tworzenie wszystkich zmiennych na początek programu, w którym niektórzy ludzie mogą zrobić w przeszłości, lub był z pewnością bardzo często kodowania praktyce wiele lat temu podczas pracy z C może po prostu Aby utworzyć zmienną rację, kiedy Potrzebujesz tego. W porządku. Dlatego stworzyliśmy zmienne. W jaki sposób z nich korzystać? Po deklarujemy zmienna, nie musimy aby określić typ danych tej zmiennej więcej. W rzeczywistości, jeśli nie tak, to może skończyć z niektórych dziwnych konsekwencji że będziemy trochę koloryzować teraz. Ale wystarczy powiedzieć, dziwne rzeczy idą rozpocząć się dzieje, jeśli przypadkowo ponownie zadeklarować zmienne o tej samej nazwie kółko. Więc mam cztery linie kodu. A ja mam kilka Komentarze Nie ma po prostu wskazujące co się dzieje na każdy wiersz po prostu pomóc można się znajduje w tym, co się dzieje. Więc int liczba ;. Widziałeś, że wcześniej. To jest deklaracja zmiennej. Mam teraz tworzone zmienną numer dzwoniący to w stanie utrzymać wartości typu INT. Mam ogłosił go. Następna linia jestem przypisywania wartość do liczby. Liczba jest równa 17. Co się tam dzieje? Kładę numer 17 wewnątrz tej zmiennej. Więc jeśli kiedykolwiek następnie wydrukować, co zawartość numeru są później, powiedzą mi, że to 17. Tak już zadeklarowaniu zmiennej, a potem przypisaniu go. Możemy powtórzyć proces dzięki char liście ;. To oświadczenie. List równa kapitału H. To zadanie. Całkiem proste, zbyt. Teraz proces ten może wydawać trochę głupie. Dlaczego to robimy w dwóch linii kodu? Czy istnieje lepszy sposób to zrobić? W rzeczywistości nie jest. Czasami można zobaczyć to nazywa inicjalizacji. To kiedy zadeklarować zmienną i przypisanie wartości w tym samym czasie. To jest rzeczywiście dość wspólna sprawa. Podczas tworzenia zmiennej, zwykle chcesz go mieć podstawową wartość. Nawet jeśli jest to 0 lub coś. Wystarczy dać mu wartość. Możesz zainicjować zmienną. Int ilość wynosi 17 jest taka sama, jak Pierwsze dwie linie kodu w górę powyżej. Litera Char równa h jest taka sama jak Trzecia i czwarta linia kodu powyżej. Najważniejszym wynos tutaj gdy mamy do deklarowania i przypisywania Zmienne jest po mamy ogłosił go, zawiadomienia Nie będę ponownie przy użyciu typu danych. Nie mówię, int liczba wynosi 17 na druga linia kodu, np. Mówię tylko, że liczba jest równa 17. Ponownie, ponowne zadeklarowanie zmiennej po już oświadczył, może to prowadzić z jakimś dziwnym konsekwencji. Więc po prostu uważać na to. Jestem Doug Lloyd. I to jest CS50.