[Играет музыка] СЛУШАЛИ: Ладно. Итак, давайте поговорим о другом что это своего рода уникальным для 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 в степени минус 7 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.