>> [Грає музика]
СЛУХАЛИ: Гаразд.
Отже, давайте поговоримо про інше що це свого роду унікальним для C,
який типи даних і змінні.
Коли я кажу, унікальний для С, я дійсно означати тільки в контексті,
якщо ви були програмістом протягом дійсно довгого часу,
ви, ймовірно, не працював з типами даних
якщо ви використовували сучасний мови програмування.
Сучасні мови, такі як PHP і JavaScript,
який ми також будемо бачити трохи надалі в ході,
Ви насправді не потрібно вказувати тип даних змінної
коли ви використовуєте його.
>> Ви просто оголосити його і почати використовувати його.
Якщо це ціле, його знаю, що це ціле число.
Якщо це символ, це знає, що це персонаж.
Якщо це слово, він знає, це рядок, так звані.
>> Однак в C, який є старий мову, ми повинні
вказати дані тип кожної змінної
що ми створюємо в перший раз що ми використовуємо цю змінну.
Так C поставляється з деякими вбудованих типів даних.
І давайте знайомитися з деякими з них.
А потім після цього ми також поговоримо трохи про деяких з типів даних
що ми написали для вас, так що ви можете використовувати їх в CS50.
>> По-перше, Int.
Тип INT дані використовуються для змінних що буде зберігати цілі значення.
Так 1, 2, 3, негативний 1, 2, 3, і так далі.
Цілі, що те, що ви Слід мати на увазі, для вікторини,
завжди займають чотири байти пам'яті, що становить 32 біта.
Існують восьмій бітів в байті.
>> Так це означає, що в діапазоні цінує, що число може зберігати
обмежений тим, що може поміститися в 32 біта на суму інформації.
Тепер, як з'ясовується, Це було давно вирішено
що ми розлучилися що діапазон 32 біт
в негативних цілих і позитивні цілі числа,
кожен стає половині діапазону.
Так діапазоні значень, які ми представляємо з цілочисловим діапазоні від негативного 2
31-й влади 2 до 31-потужність мінус 1,
привести вам також необхідно місце для 0.
>> Так в основному половина з можливих значень Ви можете пристосувати в міжнар негативні,
і половина є позитивними.
І приблизно тут, це про негативний 2 млрд до 2 млрд позитивною.
Дайте або взяти пару сотень мільйонів.
Так що те, що ви можете помістити в цілій змінній.
Тепер у нас є щось називається ціле число без знака.
Тепер без знака Інтс не є окремий тип змінної.
Швидше за все, це без знака те, що називається класифікатор.
Це змінює дані тип цілого незначно.
>> І в цьому випадку, те, що без знака означає: а ви також можете
використовувати непідписані інші типи даних, число це не тільки один.
Що це ефективно робить подвоюється позитивний діапазон значень
що число може приймати на витрата більше не дозволяє
Вам приймати негативні значення.
Так що, якщо у вас є номери, які ви знаєте отримаєте більше ніж 2 млрд, але менше
ніж 4 млрд, за example-- який складає від 2 до 32-го power--
Ви можете використовувати без знака INT якщо ви
знати ваше значення ніколи не буде негативним.
>> Ви будете іноді є використовується для непідписаних змінних
в CS50, який є, чому я згадую його тут.
Але, знову ж, діапазон значень, які ви може представляти з цілого числа без знака
а Т регулярне ціле число, від 0 до 2 до влади 32-го мінус 1,
або приблизно від 0 до 4 млрд.
Отже, ви ефективно подвоїлася позитивних значень, що ви можете помістити,
але ви відмовилися всі негативні значення.
>> Тепер, як в сторону, без знака не тільки класифікатор
що для нас може побачити типи змінних даних.
Є також речі, звані короткі і довгі, і будівництва.
Будівництва, ми побачимо трохи Трохи пізніше в курсі.
Короткі і довгі, ми, ймовірно, не буде.
>> Але точно знаю, що є інші відбіркові.
Без підпису не тільки один.
Але це тільки один ми поговоримо про прямо зараз.
Таким чином, все в порядку.
Таким чином, ми вже розглянули цілих чисел.
Що далі?
>> Символів.
Так символи використовуються для змінних що буде зберігати окремі символи.
Чар короткий для характеру.
А іноді ви можете почути люди вимовляють його як автомобіль.
>> Так герої завжди займають одну байт пам'яті, який знаходиться всього в 8 біт.
Таким чином, це означає, що вони можуть встановити тільки Значення в діапазоні від негативу 2
у сьомому ступені, або негативний 128, до 2 в ступені мінус 1 липня, або 127.
>> Завдяки ASCII, було давно вирішив спосіб
щоб зіставити ці позитивні числа від 0 до 127 різних символів
що все існує на нашій клавіатурі.
Так як ми побачимо пізніше, в курс, і ви, ймовірно,
прийшов, щоб запам'ятати на деякі точка, капітал А для example--
характер капітал A-- відображає на номер +65.
І причина в тому, тому що це те, що це
був призначений відповідно до стандарту ASCII.
>> Рядкові А 97.
Характер 0, коли вам насправді введіть характер, не
представляє число нуль, 48.
Ви дізнаєтеся пару з них, як ви йдете.
І ви, звичайно, потрібно прийти до їх небагато пізніше в CS50.
>> Наступним великим тип даних в числа з плаваючою комою.
Так число з плаваючою точкою також відомий як дійсних чисел.
Вони в основному номери, які є десяткову крапку в них.
З плаваючою комою як цілі числа також
містяться протягом 4 байт пам'яті.
Тепер немає схема тут.
Там немає номер рядка, бо описуючи коло поплавця
Не зовсім ясно, чи інтуїтивно.
>> Досить сказати, вам є 32 біта для роботи с.
І якщо у вас є номер як пі, який має
ціла частина 3 і плаваючою Точка частина, або дрібна частина 0,14159,
і так далі, ви повинні бути можливість представляти всі it--
ціла частина і дрібна частина.
>> Так що ви думаєте, що може означати?
Одна річ, що якщо десяткової частина стає більше і більше,
якщо у мене є дуже великий Ціла частина, я не міг
зможе бути настільки точною, з десятковою частини.
І це насправді обмеження поплавця.
>> Поплавці є проблеми точності.
У нас є тільки 32 біта на працювати, тому ми можемо тільки
бути настільки точні, з нашою десяткової частини.
Ми не можемо обов'язково десяткової частина точним на 100 або 200 цифр,
тому що у нас є тільки 32 біта для роботи с.
Так що це обмеження поплавця.
>> Тепер, на щастя, є інший тип даних називається
двічі, що кілька займається цією проблемою.
Парний, як поплавки, які також використовуються для зберігати речові числа або з плаваючою точкою
значення.
Різниця в тому, що Дублі подвійної точності.
Вони можуть відповідати 64 біт Дані, чи вісім байт.
Що це означає?
Ну, це означає, що ми можемо бути набагато більше точна з комою.
Замість того, пі до семи місця, може бути, с поплавком,
ми можемо, можливо, є його до 30 місць.
Якщо це важливо, ви, можливо, захочете використовувати подвійний замість поплавця.
В принципі, якщо ви працює на що-небудь де
мають дуже довго десяткового і багато точності важливо,
Ви, ймовірно, хочете, щоб використовувати подвійний overfloat.
Тепер більшу частину роботи в CS50, поплавець повинен бути достатнім.
Але знаю, що існують двійники у вигляді спосіб кілька справу з точністю
Проблема, даючи вам додатковий 32 Біти для роботи з для чисел.
>> Тепер це не тип даних.
Це тип.
І це називається недійсними.
І я кажу про це тут, тому що ми вже, напевно
бачив його кілька разів вже в CS50.
І ви можете бути здивовані, те, що це все о.
>> Так порожнеча тип.
Це дійсно існує.
Але це не є типом даних.
>> Ми не можемо створити змінну типу анулюванню і призначити їй значення.
Але функції, наприклад, може мати тип повертається недійсним.
В принципі, якщо ви бачите функцію який має тип повертається недійсним,
це означає, що не повертає значення.
Чи можете ви загальний Функція, яку ми використовували досі
в CS50, яка не повертає значення?
>> Printf один.
Printf насправді не нічого повертати до вас.
Він друкує щось на екран, і це в основному
побічний ефект, що робить Printf.
Але це не дає вам значення назад.
Ви не захопити результат і магазин це в якійсь змінної, щоб використовувати його в подальшому.
Це просто щось друкує екран, і ви зробили.
>> Тому ми говоримо, що Printf є функцією недійсними.
Це нічого не повертає.
>> Список периметру Функція також може бути недійсним.
І ви також бачили, що зовсім небагато в CS50 теж.
Int основний недійсними.
Що дзвонить дзвін чи що?
В основному те, що це означає, що Основний не приймає ніяких параметрів.
Там немає аргумент, що отримати пройшло в головному.
Тепер надалі ми побачимо, що є спосіб передачі аргументів в основному,
але досі, що ми бачив це INT основний недійсними.
Головна просто не приймати будь-які аргументи.
І так ми вказуємо, що, говорячи недійсними.
Ми просто будучи дуже явне про те,
що він не приймає ніяких аргументів.
>> Так що зараз, достатньо, щоб його сказати, що в основному порожнечу
повинні просто служити як заповнювач для вас, як думати про ніщо.
Це нічого не робить.
Там немає значення, що повертається тут.
Там немає ніяких параметрів тут.
Це порожнеча.
Це трохи складніше, ніж це.
Але це має бути достатньо для краща частина курсу.
І, сподіваюся, тепер у вас є трохи трохи більше про те, що концепція порожнеча.
>> Так що ті п'ять типів ви будете Зустріч, які вбудовані в С
Але в CS50 у нас також є бібліотека.
CS50.h, які ви можете включити.
І який забезпечить вам з двома додатковими типами
що ви, мабуть, зможете для використання на ваших завдань,
або просто працювати, як правило програмування.
>> Перший з них є BOOL.
Таким чином, логічний тип, BOOL, використовується для змінних
що буде зберігати логічне значення.
Якщо ви коли-небудь чув цей термін і раніше, вам
могли знати, що логічне значення Значення здатний тільки
проведення двох різних різні значення.
Істинні і помилкові.
Тепер це здається досить фундаментальна, вірно?
Це свого роду сюрпризом, що це не існує в C, як це вбудований в.
І в багатьох сучасних мовах, звичайно, логічні
є стандартний тип даних за замовчуванням.
Але в C, вони насправді немає.
Але ми створили його для вас.
Так що, якщо ви коли-небудь потрібно створити змінна, тип BOOL,
тільки переконайтеся, що #include CS50.h на початку вашої програми,
і ви зможете створити змінні типу BOOL.
>> Якщо ви забули #include CS50.h, і ви починаєте використовувати змінні типу Boolean,
Ви могли б зіткнутися з деякими проблемами коли ви компілюєте програму.
Так що будьте напоготові для цього.
І, може бути, ви можете просто виправити проблеми по фунту в тому числі CS50.h.
>> Інший основний тип даних, які ми забезпечити для вас в бібліотеці CS50
рядок.
Так що це рядок?
Рядки дійсно просто слова.
Вони колекції символів.
Вони слів.
Вони вироки.
Вони абзаци.
Може бути цілі книги, навіть.
>> Дуже коротка, щоб дуже довго послідовність символів.
Якщо вам потрібно використовувати струни, наприклад, для зберігання слова,
тільки не забудьте включити CS50.h на початку вашої програми
так що ви можете використовувати строковий тип.
І тоді ви можете створювати змінні Тип даних якого є рядок.
Тепер пізніше в ході, ми також побачимо, що це
не вся історія, або.
Ми стикаємося речі звані структури,
які дозволяють групувати, що може бути ціле число, а рядок в один блок.
І ми можемо використовувати це для деякі цілі, які могли б
придасться надалі в ході.
>> І ми також дізнаємося про певних типів,
які дозволяють створити Ваші власні типи даних.
Ми не повинні хвилюватися про те, що в даний час.
Але точно знаю, що це щось на обрії,
що є набагато більше до цього цілому тип річ, ніж я вам говорю тільки
Тепер.
Так що тепер ми дізналися трохи про основні даних
види і типи даних CS50, давайте говорити про те, щоб працювати зі змінними
і створювати їх за допомогою них типи даних в наших програмах.
Якщо ви хочете створити змінну, все, що вам потрібно зробити, це дві речі.
>> По-перше, ви повинні дати йому тип.
Друге, що ви повинні зробити, це дати йому ім'я.
Після того як ви це зробили, і вдарив комою в кінці цього рядка,
Ви створили змінну.
>> Так от два приклади.
Int номер; символ лист;.
Що я зробив тут?
Я створив дві змінні.
>> По-перше, значень змінної ім'я номер.
І число здатний утримувати ціле введіть значення, тому що його тип Int.
Лист інша змінна який може містити символи
так як її тип даних CHAR.
>> Досить просто, чи не так?
Якщо ви опинитеся в ситуації, коли
Ви повинні створити кілька змінні того ж типу,
Ви повинні тільки вказати ім'я типу один раз.
Тоді просто перерахувати стільки змінних, цього типу, як вам потрібно.
>> Так що я міг, наприклад, тут в цьому третьому рядку коду,
кажуть висоти INT;, новий рядок.
Int ширина;.
І, що б працювати теж.
Я все ще отримую дві змінні називаються висота і ширина, кожен з яких
є цілим числом.
Але я дозволив, речі синтаксису C, консолідувати його в одному рядку.
Висота Int, ширина; Це те ж саме.
Я створив дві змінні, одна називається Висота одна називається ширина, обидва з яких
здатні холдингу цілі значення типу.
>> Точно тут, я можу створити три з плаваючою комою за один раз.
Я можу, можливо, створити змінну називається квадратний корінь з 2--
які, ймовірно, в кінцевому рахунку утримуйте плаваючою point--
що подання на площі корінь 2-- квадратний корінь з 3, і пі.
Я міг би зробити це на трьох окремих ліній.
Поплавок, квадратний корінь 2; Поплавок квадратний корінь 3; плавати пі; і що буде працювати теж.
>> Але, знову ж, я можу тільки об'єднати це в одному рядку коду.
Робить речі трохи коротше, а не як незграбним.
>> В даний час в загальному, це хороший дизайн, щоб тільки оголосити змінну, коли вам це потрібно.
І ми будемо говорити трохи трохи більше про те, що
пізніше в ході коли ми будемо обговорювати масштаби.
Так що не обов'язково повинні створити всі ваші змінні
на початку програми, яка деякі люди могли б зробити минуле,
або, звичайно, дуже поширена практика кодування багато років тому
при роботі з С. Ви можете просто хочете створити змінну прав, коли
вам це потрібно.
Добре.
Таким чином, ми створили змінні.
Як ми їх використовувати?
Після того як ми оголосити Мінлива, ми не повинні
вказати тип даних цієї змінної більше.
Справді, якщо ви робите це, ви могли б в кінцевому підсумку з деякими дивними наслідками
що ми начебто замовчувати зараз.
Але досить сказати ,, дивні речі йдуть
щоб почати відбувається якщо ви ненавмисно знову оголошувати змінні з таким же ім'ям
знову і знову.
>> Так от у мене є чотири рядки.
І в мене є пару коментарі там просто вказують
що відбувається на кожен рядок просто, щоб допомогти
ви отримуєте розташований в те, що відбувається.
Так INT номер;.
Ви бачили, що раніше.
Це оголошення змінної.
>> Я тепер створили змінну називається число, це
здатний утримувати цілі значення типу.
Я оголосив його.
>> Наступний рядок я задаю значення на номер.
Кількість дорівнює 17.
Що там відбувається?
Я ставлю кількість 17 всередині цієї змінної.
>> Так що, якщо я коли-небудь потім роздрукувати те, що вміст числа є пізніше,
вони скажуть мені, що це 17.
Так що я оголосив змінну, а потім я призначений його.
>> Ми можемо повторити процес знову напівкоксу листі;.
Ця заява.
Лист дорівнює капітал Х. Це призначення.
Досить просто, занадто.
>> Зараз цей процес може здається нерозумно.
Чому ми це робимо у двох рядків коду?
Чи є кращий спосіб зробити це?
Насправді, є.
Іноді ви можете побачити це називається ініціалізації.
Це коли ви оголошуєте змінну і привласнити значення, в той же час.
Це насправді досить загальна річ, щоб зробити.
Коли ви створюєте змінну, ви, як правило хочу, щоб мати деякі базові цінності.
Навіть якщо це 0 або щось.
Ви просто даєте йому значення.
>> Ви можете ініціалізувати змінну.
Int число дорівнює 17 так само, як перші два рядки коду нагорі.
Символьне лист дорівнює ч те ж саме, як Третя і четверта рядки коду вище.
Найбільш важливим тут винос коли ми декларування та присвоєння
змінних після того як ми заявив, повідомлення
Я не раз з використанням типу даних.
Я не кажу, INT число дорівнює 17 на другий рядок коду, наприклад.
Я просто кажу, число яких дорівнює 17.
>> Знову ж таки, повторно оголосивши змінну після Ви вже заявив, що може привести
в якійсь дивній слідство.
Так що будьте обережні, що.
>> Я Дуг Ллойд.
І це CS50.