Язык программирования СИ имеет достаточно понятную структуру и поддерживает разнообразные типы данных и переменных. Если тип определен неверно, не исключены проблемы.
Далее предстоит рассмотреть основные типы в СИ. Акцент предстоит сделать на int – он встречается в разработке чаще остальных. Необходимо разобраться в системе типов, их непосредственных видах и особенностях каждого. Информация, представленная далее, в большей степени ориентирована на начинающих программистов.
Термины и определения
Перед изучением того, какие виды переменных поддерживаются в СИ, каждый программист должен запомнить несколько ключевых терминов. Они пригодятся всем разработчикам, имеющим дело с объектно-ориентированными языками:
- Алгоритм – некоторый набор инструкций. Он используется для того, чтобы решать поставленные задачи или их спектр.
- Аргументы – значения, которые будут передаваться в функции или команды.
- Булево – выражение, которое используется для создания операторов со значениями «истина» и «ложь» (true и false соответственно).
- Символ (char) – простейшая единица отображения информации. Она равна одной буквенной записи или символу.
- Объект – комбинация некоторых связанных переменных, констант и иных структурных единиц. Соответствующие элементы могут быть выбраны и обработаны совместно.
- Класс – связанные объекты с одними и теми же свойствами.
- Константа (const) – значение, которое никогда не меняется по мере изменения жизненного цикла программы.
- Тип данных – классификация информации определенного типа.
- Массив – списки или группы схожих типов значений данных, которые предварительно были сгруппированы. Все компоненты в пределах массива обладают одним и тем же видом, отличая только по местоположению.
- Ключевые слова – слова, которые синтаксис языка зарезервировал для выполнения функций, команд и иных действий.
- Операнд – объект, которым можно управлять через операторы.
- Оператор – объект, который умеет манипулировать разными операндами.
- Переменная – место хранения данных в программе. Информация, помещенная в переменную (не только int, но и другого вида), может изменяться, сохраняться, а также выводиться на консоль.
- Указатель – переменная, содержащая адрес места в памяти.
Теперь можно более подробно изучить типы переменных в упомянутом языке. А еще – разобраться с тем, что они обозначают и как обрабатываются.
О переменных
Разновидности типов в СИ можно полноценно освоить только после того, как программист познакомился с переменными. Без них не может существовать ни одна программа.
Переменная – это именованная ячейка памяти, выделенная системой. Она помогает хранить, обрабатывать и извлекать те или иные данные. Рассматривается в качестве имени, присвоенного ячейке памяти для того, чтобы по мере надобности разработчик мог ссылаться на нее.
Форма синтаксиса:
Тут:
- data type – тип переменной (виды информации, которые может хранить соответствующий компонент);
- variable name – «название» переменной, которое было задано программистом заранее;
- value – значение, которое было присвоено переменной в СИ.
У соответствующего элемента имеются три аспекта определения: объявление, определение и инициализация.
Правила присваивания имен
Рассматривая типы переменных в ранее упомянутом языке, их размер и другие особенности обработки, каждый программист сначала должен научиться управляться с «именованными ячейками памяти». Важную роль в подобном процессе играет присваивание имени. Если оно будет выполнено с ошибками, задать int или иную «именованную ячейку» не получится.
Здесь рекомендуется запомнить следующие правила:
- Имя может содержать только буквы, цифры и символ подчеркивания.
- «Название» должно начинаться только с символа нижнего подчеркивания или алфавита. С цифры никогда не пишется.
- Использование пробелов не допускается. Условные правила и принципы разработки предлагают каждое новое слово по мере необходимости указывать или с заглавной буквы, или через символ нижнего подчеркивания.
Еще один момент, на который необходимо обратить внимание – это то, что именем упомянутого компонента кода не может выступать зарезервированное системой слово (ключевое слово) или фраза аналогичного типа.
Единицы измерения информации
Изучая типы переменных в C, а также их размер для того или иного случая, нужно также хорошо разбираться в единицах измерения информации.
Информация – это сведения об окружающем мире, которые выступают в качестве объекта преобразования. Используются для выработки поведения, принятия решений, обучения или управления. Может быть представлена различными типами. Примеры – видео, аудио, электронный текст и так далее.
В информатике и IT существуют различные виды измерения объема информации. «Классически» она представлена в байтах. В них переводятся даже самые крупные компоненты.
В байтах представляется восьмиразрядный двоичный код. Им представляется один символ:
- 1 байт = 8 бит;
- 1 килобайт = 1024 в байтах;
- 1 мегабайт = 1 000 000 байт;
- 1 гигабайт = 1 000 000 000 000 байт.
Рассматривая int и другие типы информации, разработчику предстоит иметь дело именно с байтами. Остальные единицы измерения поддерживаются, но не используются языком и операционными системами.
Основные типы в C
C – язык разработки, который имеет множество типов. Каждый вариант поддерживает свой собственный размер и спектр доступных операций. Задание типа переменной производится при помощи специальных ключевых слов. Они будут меняться в зависимости от ситуации.
Изначально в C представлены основные арифметические типы – целые (int) и вещественные. Также у языка поддерживается синтаксис для выстраивания массивов информации и составных типов.
Заголовки для стандартной библиотеки C, которая будет применяться посредством директивы include stdio, включает в себя определения поддерживаемых видов информации с дополнительными свойствами. К ним относят предоставление хранилища точного размера, независимо от задействованного языка, а также реализации на конкретных платформах.
Базовые
У C поддерживаются несколько основных арифметических спецификаторов (data types). К ним относят char, int, float и double. Для уточнения размера (size) компонента применяются спецификаторы signed, short, long, unsigned.
Ниже представлена таблица, объясняющая обозначение каждого вида информации, символьное обозначение в программном коде, диапазон принимаемых параметров и иные их особенности:
Data type (вид информации) | Характеристика и описание | Минимальный размер (sizes) | Описатель используемого формата |
Char | Самая простая единица информации на устройстве. Может называться как character. Целочисленный тип. Может быть как со знаком, так и без него. | 8 бит | %c |
Signed char | То же самое, что и char но гарантировано со знаком. Диапазон значений – от -127 до 127 | %c или %hhi (для числового вывода) | |
Unsigned char | То же самое, что и characters, но точно без знака. Диапазон значений – от 0 до 255 включительно. | %c или %hhu | |
shortshort intsigned shortsigned short int | Встроенные короткие знаковые целочисленные. Минимальный диапазон – -32 767 и до 32 767 | 16 бит или 2 байта | %hi или %hd |
unsigned shortunsigned short int (integer) | Целое число без знака. Включает в себя диапазон от 0 до 65 535 | %hu | |
int (integers)signedsigned int | Встроенные целочисленные со знаком диапазон – от -32 767 до 32 767 | %i или %d | |
unsignedunsigned int | Встроенные целочисленные без знаков. Диапазон – как и у short | %u | |
longlong intsigned longsigned long int | Длинный целочисленный тип со знаком. Принимает значение от – 2 147 483 647 до 2 147 483 647. | 32 бит или 4 байта | %li или %ld |
unsigned longunsigned long int | Длинный целочисленный без знака. Включает в себя диапазон от 0 до 4 294 967 295. | %lu | |
long longlong long intsigned long longsigned long long int | Длинный целочисленный вид. Задан размерностью от -9 223 372 036 854 775 807 до 9 223 372 036 854 775 807. | 64 бит. | %lli или %lld |
unsigned long longunsigned long long int (integer) | Длинный длинный целочисленный. Принимает значение от 0 до 18 446 744 073 709 551 615. | %llu | |
float | Floating – это число с плавающей точкой. Реальный type. Называется «с плавающей запятой одинарной точности». Фактические свойства не указаны. В большинстве система представлен двоичным форматом с плавающей запятой одинарной точности IEEE 754 (32 бита) . | %f%F%g%G%e%E%a%A | |
double | В отличие от int представляет собой действительный вид информации с плавающей запятой. Это type с запятой «двойной точности». | %lf%lF%lg%lG%le%lE%la%lA | |
long double | Действительный вид с плавающей запятой расширенной точности. |
Изучая int, char, float и другие виды информации, необходимо в первую очередь запомнить обозначение «встроенных базовых» вариантов. В них integer (int) является самым распространенным.
Также стоит помнить, что у каждого размера типа имеется собственный «минимальный объем». Это количество памяти, которое всегда будет выделяться для того или иного вида информации. Пример – размер short int – 16 бит, char – 8 бит, long –32 бита.
Логический
В разработке программного обеспечения, начиная с C99, добавлен type _Bool. Он называется логическим и отличается от int a и других ранее изученных видов. Принимает значение true или false. С другими «параметрами» не работает.
Заголовок определяет bool как удобный псевдоним для international обозначения, предоставляет макросы для true и false. Работает точно также, как и обычный целочисленный (int x) тип переменных, но любые присвоения _Bool, которые отличаются от 0 (логической лжи, false), будут сохраняться как 1 (истина, true). Подобные преобразования помогают работать с «неявными трансформациями».
Целые фиксированной длины
В стандарте C99 присутствуют не только обычные int d в C, но и фиксированной длины. Они используются для повышения переносимости программ и на практике применяются преимущественно опытными разработчиками.
Новые типы переменных (фиксированной длины) получили широкое применение во встраиваемых системах. Они определены в заголовочном файле inttypes.h, доступны в stdint.h. Разделяются на int (целые):
- с точно заданным размером N бит в любой реализации;
- наименьшие, размер которых минимален в реализации;
- наибыстрейшие, которые гарантированно работают быстрее остальных в заданной реализации;
- для указателей, которые точно хранят адрес в памяти (активируются, только если являются доступными на имеющейся платформе);
- наибольшие, размер которых выступает самым большим в реализации.
Выше представлена таблица, которая поможет разобраться в соответствующей категории переменных в C.
Теперь понятно, какие data types в основном используются упомянутым языком программирования. Чтобы лучше работать с int и другими «форматами», рекомендуется закончить дистанционные компьютерные курсы. На них с нуля обучат разрабатывать сложные проекты, а также грамотно использовать память на устройстве, встроенные в ЯП инструменты и функции, переменные и фреймворки.
P. S. Интересует разработка? Обратите внимание на курс «Программист C». Также в Otus доступно множество других современных курсов.