— 5.2.1.
5.2.1. Типы данных
Тип данных – понятие из теории программирования. Тип данных определяет диапазон значений и операций, которые могут быть применены к этим значениям. Например, если переменная имеет числовой тип данных, то таким образом определен диапазон значений, которые могут быть сохранены в этой переменной (числа) и определены операции, которые могут быть применены к этой переменной (арифметические). Каждый язык программирования поддерживает один или несколько типов данных.
Вообще говоря, в памяти компьютера хранятся только последователь-ности битов. Если имя переменной указывает адрес в памяти, по которому хранится информация, то тип данных (тип переменной) указывает, каким обра-зом следует обращаться с этой информацией, то есть с битами, находящимися по данному адресу.
Преимущества от использования типов данных:
- Надежность. Типы данных защищают от трех видов ошибок:
1.
Некорректное присваивание. Пусть переменная объявлена как имеющая числовой тип. Тогда попытка присвоить ей символьное или какое-либо другое значение приведет к ошибке еще на этапе компиляции и позволит избежать многих трудностей, поскольку такого рода ошибки трудно отследить обычными средствами. Предварительное объявление используемых переменных сейчас обязательно практически во всех языках.
2. Некорректная операция. Позволяет избежать попыток применения выражений вида «Hello world» + 1. Поскольку, как уже говорилось, все переменные в памяти хранятся как наборы битов, то при отсутствии типов подобная операция была выполнима (и могла дать результат вроде «Hello wordle»!). С использованием типов такие ошибки отсекаются на этапе компиляции.
3. Некорректная передача параметров. Если функция «синус» ожидает, что ей будет передан числовой аргумент, то передача ей в качестве параметра строки «Hello world» может иметь непредсказуемые последствия. При помощи контроля типов такие ошибки также отсекаются на этапе компиляции.
Классификация типов данных. Согласно стандартной классификации, типы данных бывают следующие:
1. Простые.
1.1. Числовые. Хранятся числа. Могут применяться обычные арифметические операции.
1.1.1. Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.
1.1.2. Вещественные: с фиксированной точкой, то есть хранятся знак и цифры целой и дробной частей и с плавающей точкой, то есть число приводится к виду m*2e, где m — мантисса, e — экспонента причем 1/2<=m<=1, а e — целое число и хранятся знак, и числа m и e.
1.2. Символьный тип. Хранит один символ. Могут использоваться различные кодировки.
1.3. Строковый тип. Хранит строку символов. Может применяться операция конкатенация (сложение строк). Вообще говоря, может рассматриваться как массив символов, но как правило выделяется в качестве простого.
1.4. Логический тип. Имеет два значения: истина(true) и ложь(false). Могут применяться логические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом false=0, true=1.
1.5. Перечислимый тип. Может хранить только те значения, которые прямо указаны в его описании.
2. Составные. Формируются на основе комбинаций простых типов.
2.1. Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектор, двумерный массив — таблица.
2.2. Запись. Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи.
2.3. Множество (тип данных). В основном совпадает с обычным математическим понятием множества. Допустимы стандартные операции с множествами и проверка на принадлежность элемента множеству.
3. Другие типы данных. Если описанные выше типы данных представляли какие-либо объекты реального мира, то рассматриваемые здесь типы данных представляют объекты компьютерного мира, то есть являются исключительно компьютерными терминами.
3.1. Указатель (тип данных). Хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — указатель на переменную.
3.2. Ссылки (тип данных).
Переменные для языка программирования С++ OTUS
Для того, чтобы писать программные коды, разработчику необходимо знать немало компонентов и составляющих выбранного языка программирования. Огромным спросом пользуется СИ-семейство. С его помощью программист может создавать совершенно разные утилиты – от мелких офисных до крупных игровых проектов.
Некоторые языки СИ-семейства обладают достаточно трудным синтаксисом, а также сложной формой представления итоговой кодификации. Но используют они примерно одни и те же компоненты в своей работе.
Огромную роль для программиста играют так называемые переменные. Они могут быть разного типа. Пример – глобальные и локальные. Далее следует рассмотреть соответствующий компонент более подробно. Информация пригодится и новичкам, и опытным разработчикам.
Определение
Переменная – это место хранение информации в программе. Именованная ячейка памяти устройства. Представлены выделенными «блоками» для определенного типа данных.
Каждая ячейка может быть заполнена разного рода значениями. Они подлежат модификациям (корректировкам), удалению, считыванию. Переменные имеет каждая программа. Она использует оные для тех или иных целей.
Тип данных
Переменные в СИ ++ обладают определенном типом данных. Пример – целочисленный тип не может содержать значения, отличные от целых чисел. Переменные с плавающей запятой – это только дробные.
Тип данных будет присваиваться переменным тогда, когда они будут объявлены в утилите. Возможно определение оного в момент инициализации.
Классификация
Переменные в С ++ могут быть:
- Глобальными. Это переменные, которые «видны» всему приложению. Их нужно объявить в самом начале кодификации.
- Локальными. Объявление такой переменной происходит в конкретном блоке.
Код будет «разбирать» соответствующие ячейки памяти только в пределах определенной части утилиты.
Это – основной тип классификации. Его должен знать каждый программер, чтобы составлять приложения.
Стандартные типы
Перед тем, как осуществлять объявление переменной, стоит изучить стандартные их типы. От этого будет зависеть, какой именно «вид» информации хранит в себе именованная ячейка памяти устройства.
Вот основные типы:
- int – целое число;
- float – неточный тип, который позволяет хранить целую и дробные части;
- double – аналог предыдущего, но с большей точностью;
- char – тип данных, отвечающий за запись символов;
- bool – логический тип, который может быть true или false.
Это – база, с которой необходимо познакомиться всем программистам, независимо от того, какой язык выбран для коддинга.
Объявление
В СИ семействе, как и любом другом ЯП, можно использовать разные «именованные ячейки памяти».
Только сначала их требуется объявить. Для этого используются уникальные имена – идентификаторы.
Здесь стоит запомнить, что:
- имя не может начинаться с цифр;
- нельзя допускать пробелы и спецсимволы;
- имя должно быть уникальным.
В качестве идентификатора нельзя использовать ключевые слова. Все это – ограничения, которые помогают грамотно объявлять переменные в C.
Форма «задавания» именованных ячеек в памяти для кодификации будет иметь такую запись:
<тип данных> <идентификатор переменной>, …, <имя переменной № n>;
Чтобы присвоить значение, потребуется после объявления переменной поставить знак равенство. Далее – прописать интересующую информацию. Пример – char c = ‘a’. Такая запись будет инициализирована символом, прописанном в кавычках.
О передаче значений
Когда тип электронных данных обозначен, нужно присвоить то или иное значение именованной ячейке в памяти девайса. Иначе в переменной не будет никакого смысла.
Здесь стоит запомнить следующие принципы:
- для целочисленного типа можно указывать через знак равенства только целые числа;
- дробное значение прописывается как целая часть, затем через точку – дробная;
- чтобы передать в символьный тип желаемый параметр, его прописывают в кавычках;
- при работе с типом bool, нужно указывать true или false в значении.
Теперь можно создавать первые проекты на языке Си Плюс-Плюс. При неправильном указании значения для того или иного типа при обработке ячейки памяти будет выдана ошибка. Иногда это приводит к полному краху утилиты.
Глобальный тип
Глобальные переменные – это ячейки памяти, которые будут рассматриваться всем программным кодом. Доступ к ним можно получить из любых частей будущей утилиты. Область видимости здесь определяется всем программным кодом.
Стоит обратить внимание, что при использовании локальных и глобальных переменных нельзя применять одни и те же идентификаторы. Это – прямой путь к ошибкам.
Согласно установленным правилам синтаксиса, переменные в C типа global прописываются в самом начале утилиты. Если нужно использовать идентификаторы одного вида, к подобным «ячейкам» прибавляют префикс g_.
Ключевые слова
Связь переменной – определение, относятся ли несколько упоминаний одного идентификатора к одной и той же «ячейке памяти» или нет. Переменные без связи – локальные. Две с одинаковыми именами, но объявленные в пределах разных функций, не будут связаны между собой. Каждая – это самостоятельная единица. Также стоит запомнить, что:
- Переменные со внутренними связями – статические или внутренние. Они могут применяться в любом месте документа, где определены. К чему-то за пределами соответствующего документа оные не имеют никакого отношения.
- Если у переменной есть внешние связи – это внешние «ячейки памяти». Они применяются как в файле, где определены, так и за их пределами.
- Чтобы сделать глобальную переменную внутренней, используется ключевое слово static.

- Для внешних «ячеек» необходимо применить extern.
Изначально неконстантные «ячейки», которые объявлены вне блока – это внешний тип. Если речь идет о константах, прописанных аналогичным путем, они будут внутренними.
Область видимости
В C++ есть несколько «неофициальных» понятий, которые могут запутать новичка. Это – файловая и глобальная области видимости.
У глобальных переменных в рассматриваемом языке «стандартно» тип области видимости – файловый. Но данное понятие чаще применяется к внутренним глобальным переменным, а «глобальная область видимости» — к внешним global.
Чтобы лучше понимать эти термины, стоит рассмотреть приложение:
Здесь:
- G_y – это файловая область видимости в пределах global.cpp.
- Доступ к g_y за пределами соответствующего документа отсутствует.
- В main.cpp компилятор не увидит оную. Он сможет распознать предварительное объявление g_y.
- Линкер будет отвечать за связь определения g_y в global.
cpp с использованием g_y в main.cpp.
Обычно соответствующие понятия встречаются в отношении больших утилит.
Символьные
Глобальные переменные в C ++ могут быть символьными константами. Они определяются так:
Это – хороший вариант для небольших утилит. Каждый раз, когда представленный документ (constants.h) подключается в другой файл, каждая переменная будет туда копироваться. Присоединить удастся до 20 документов. Тогда каждая из переменных продублируется двадцать раз.
Чтобы избежать подобной ситуации, можно превратить предложенные константы в тип констант «глобальные переменные». Далее – изменить заголовочный документ только для хранения предварительных объявлений «ячеек памяти».
Тут определение символьных canst выполняется в constants.cpp один раз. Все корректировки потребуют перекомпиляции одного файла.
Специализированные компьютерные курсы помогут лучше понимать запись variable и другие, связанные с написанием программ на Си ++. Доступные программы, приятные цены, а также море опыта и опытные кураторы сделают процесс учебы предельно комфортным.
В конце курсов выдается сертификат, подтверждающий знания и навыки.
Переменные и типы данных в C: Учебное пособие по C на хинди #6
Зачем изучать язык программирования C? : Учебное пособие по C на хинди #1
Что такое кодирование и язык программирования C? : Учебное пособие по C на хинди #2
Установка и настройка кода VS с помощью компилятора C: Учебное пособие по C на хинди #3
Базовая структура программы на языке C на хинди: Учебное пособие по C на хинди #4
Основной синтаксис программы на языке C: C Учебное пособие на хинди #5
Переменные и типы данных в C: Учебное пособие по C на хинди #6
Операторы на C: Учебное пособие по C на хинди #7
Упражнение по программированию на C 1. Таблицы умножения: Учебное пособие по C на хинди #8
Спецификаторы формата C и escape-последовательности с примерами: Учебное пособие по C на хинди #9
If Else Control Операторы на C: Учебное пособие по C на хинди #10
Switch Case Control Операторы на C: Учебное пособие по C на хинди #11
Циклы на C: Учебное пособие по C на хинди #12
Do While Цикл в C: Учебное пособие по C на хинди # 13
Цикл в то время как в C: Учебное пособие по C на хинди # 14
Цикл For In C: Учебник C на хинди #15
Операторы Break and Continue на C: Учебник C на хинди #16
Оператор Goto на C: Учебник C на хинди #17
Приведение типов на C: Учебник C In Hindi #18
Функции на C: Учебник по C на хинди #19
C Упражнение 1: Решение таблицы умножения + Shoutouts: Учебник по C на хинди #20
Рекурсивные функции: Рекурсия на C: Учебник по C на хинди #21
C Упражнение 2: Единицы и преобразования: Учебное пособие по C на хинди #22
Массивы в C: Учебник по C на хинди #23
Упражнение 2: Решение + Shoutouts: Учебник по C на хинди #24
Упражнение 3 Рекурсии: Учебник по C на хинди #25
Указатели на C: Учебник по C на хинди #26
Массивы и арифметика указателей в C: Учебное пособие по C на хинди #27
Упражнение 3 О рекурсиях: решение + выкрики: Учебное пособие по C на хинди #28
Всегда ли рекурсия хороша? : Учебное пособие по C на хинди #29
Упражнение 4.
Печать узоров звезд на языке C: Учебное пособие по C на хинди #30
Вызов по значению и вызов по ссылке на языке C: Учебное пособие по C на хинди №31
Передача массивов в качестве аргументов функции: Учебное пособие по C на хинди №32
Образец звезды на языке C. Упражнение 4 Решение: Учебное пособие по C на хинди №33
Строки в C: Учебное пособие по C на хинди #34
Строковые функции в C и библиотека string.h: Учебное пособие по C на хинди #35
Обращение массива на C. Упражнение 5: Учебное пособие по C на хинди #36
Структуры на C : Учебное пособие по C на хинди #37
Typedef на языке C: Учебное пособие по C на хинди #38
Unions In C: Учебное пособие по C на хинди #39
Обращение массива в языке C Упражнение 5: Решение: Учебное пособие по C на хинди #40
Язык C HTML Parser Упражнение 6: Учебное пособие по C на хинди #41
Статические переменные в C : Учебное пособие по C на хинди #42
Учебное пособие по C.
Упражнение 6: Решения и ответы: Учебное пособие по C на хинди #43
Менеджер туристического агентства C Language. Упражнение 7: Учебное пособие по C на хинди #44
Структура памяти программ на языке C — динамическая Распределение памяти: Учебное пособие по C на хинди #45
C Language Менеджер туристического агентства Упражнение 7 Решение: Учебное пособие по C на хинди #46
Динамическое выделение памяти Malloc Calloc Realloc & Free(): Учебное пособие по C на хинди #47
C Language Менеджер сотрудников Упражнение 8: Учебное пособие по C на хинди # 48
Классы хранения на языке C Auto, Extern Static и Register Storage Classes: Учебное пособие по C на хинди #49
Менеджер сотрудников на языке C — Упражнение 8 Решение: Учебное пособие по C на языке хинди #50
Камень, бумага, ножницы для кодирования Упражнение на языке C 9: Учебник C на хинди #51
Пустой указатель на языке C: Учебник C на хинди #52
NULL Указатель на языке C: Учебник C на хинди #53
Висячий указатель на языке C: Учебник C на хинди #54
Дикий указатель на языке C: Учебное пособие по C на хинди #55
Камень, бумага и ножницы на языке C — Упражнение 9 Решение: Учебное пособие по C на хинди №56
Умножение матриц на языке C — Упражнение 10: Учебное пособие по C на хинди # 57
Введение и работа с препроцессором C: Учебное пособие по C на хинди #58
#define и #include Директивы препроцессора: Учебное пособие по C на хинди #59
Предопределенные макросы и другие директивы препроцессора: Учебное пособие по C на хинди #60 #62
Числовой палиндром Программа на языке C: Упражнение 11 Решение: Учебное пособие по C на хинди #65
Автоматический генератор квитанций на языке C.
Упражнение 12. Учебное пособие по языку C на хинди #66
Режимы файлов, fgets, fputs, fgetc, fputc и многое другое по работе с файлами C: Учебное пособие по языку C на хинди #67
Аргументы командной строки на языке C: Учебное пособие по C на хинди #68
Автоматический генератор счетов на C (решение) — Упражнение 12: Учебное пособие по C на хинди #69
Калькулятор командной строки на C — Упражнение 13: Учебное пособие по C на хинди #70
[Решено] Командная строка Калькулятор на C Упр.13 : Учебник по C на хинди #71
Указатели функций в C: Учебное пособие по C на хинди #72
Функции обратного вызова с использованием указателей на функции в C: Учебное пособие по C на хинди #73
Упражнение 13 Область круга с использованием указателей на функции: Учебное пособие по C на хинди #74
Память Утечка в C: Учебное пособие по C на хинди #75
Площадь круга на C Упражнение 14 Решение: Учебное пособие по C на хинди #76
Понимание типов данных C — char, int, float, double и void
Как следует из названия, a Тип данных определяет используется тип данных .
Всякий раз, когда мы определяем переменную или используем какие-либо данные в программе на языке C, мы должны указать тип данных, чтобы компилятор знал, какой тип данных ожидать.
. «Studytonight» , все эти значения равны по-разному обрабатывается компилятором языка C , поэтому мы используем типы данных для определения типа данных, используемых в любой программе.
Каждый тип данных занимает некоторое количество памяти, имеет диапазон значений и набор операций, которые он позволяет выполнять над собой. В этом руководстве мы объяснили различные типы данных, используемые в языке C. Примеры кода см. в руководстве по использованию типов данных C.
Типы данных в C
В общем, в языке C существует 5 различных категорий типов данных, а именно:
| Тип | |
|---|---|
| Базовый | символов, целое число, число с плавающей запятой, двойное число.![]() |
| Производный | Массив, структура, объединение и т. д. |
| Перечень | перечислений |
| Болт типа | правда или ложь |
| пустота | Пустое значение |
Первичные типы данных в C
Язык C имеет 5 основных (первичных или примитивных) типов данных, это:
Символ: Мы используем ключевое слово
charдля символьного типа данных. Он используется для хранения однобитовых символов и занимает 1 байт памяти. Мы можем хранить алфавиты от AZ (и az) и цифры 0-9, используяchar. Например,символов а = 'а'; символ б = 'А'; символ с = '0'; символ д = 0; // ошибка
Для типа данных
charнеобходимо заключить наши данные в одинарные кавычки .
Мы можем выполнять операции сложения и вычитания над символом, но значение ASCII не должно превышать 127.Целое число: Мы используем ключевое слово
intдля целочисленного типа данных. Тип данныхintиспользуется для хранения не дробных чисел, которые включают положительные, отрицательные и нулевые значения. Диапазон int равен -2 147 483 648 до 2 147 483 647 и занимает 2 или 4 байта памяти, в зависимости от используемой системы. Например,инт а = 5550; интервал b = -90, интервал с = 0; инт д = -0,5; // неверно
Мы можем выполнять сложение, вычитание, деление, умножение, побитовые операции и операции по модулю над типом данных
int.С плавающей запятой: Мы используем ключевое слово
floatдля типа данных с плавающей запятой.floatиспользуется для хранения десятичных чисел .
Он занимает 4 байта памяти и находится в диапазоне от 1e-37 до 1e+37 . Например,с плавающей запятой а = 0,05; поплавок b = -0,005. поплавок с = 1; // оно станет c = 1.000000 из-за приведения типов
Мы можем выполнять операции сложения, вычитания, деления и умножения над типом данных
float.Double: Мы используем ключевое слово
для двойного типа данных.doubledoubleиспользуется для хранения десятичных чисел . Он занимает 8 байт памяти и находится в диапазоне от 1e-37 до 1e+37 .двойное а = 10,09; двойной б = -67,9;
doubleимеет большую точность, чемflaot, поэтомуdoubleдает более точные результаты по сравнению сfloat. Мы можем выполнять операции сложения, вычитания, деления и умножения надвойнойтип данных.Недействительно: Это означает отсутствие значения.
Этот тип данных в основном используется, когда мы определяем функции. Тип данных voidиспользуется, когда функция ничего не возвращает. Он занимает 0 байт памяти. Мы используем ключевое словоvoid для типа данных void.недействительная функция () { //здесь будет ваш код }
Каждый тип данных имеет размер , определенный в бит/байт и имеет диапазон для значений, которые могут содержать эти типы данных.
Размер различных типов данных в C
Размер различных типов данных зависит от типов компилятора и процессора, короче говоря, это зависит от компьютера, на котором вы используете язык C, и от версии компилятора C, которую вы используете. установили.
char равен 1 байту
Тип данных char имеет размер 1 байт или 8 бит . Это в основном то же самое и не зависит от используемого процессора или компилятора.
int может быть 2 байта/4 байта
Существует очень простой способ запомнить размер для типа данных int . Размер типа данных int обычно равен длине слова среды выполнения программы. Проще говоря, для 16-битной среды , int IS 16 бит или 2 байта , а для 32-битная среда , INT — 32-битная .
число с плавающей запятой равно 4 байтам
Тип данных float имеет размер 4 байта или 32 бита . Это тип данных одинарной точности , который используется для хранения десятичных значений. Он используется для хранения больших значений.
float является более быстрым типом данных по сравнению с double , поскольку тип данных double работает с очень большими значениями, поэтому он медленный.
double — 8 байт
Тип данных double — 8 байт или 64 бита размером .
Он может хранить значения, которые в 90 157 удваивают размер того, что тип данных с плавающей запятой может хранить 90 158, поэтому он называется double .
В 64 битах 1 бит используется для представления знака , 11 бит для экспоненты , а остальные 52 бита используются для мантиссы .
Тип данных double может содержать приблизительно от 15 до 17 цифр до и после запятой.
void равен 0 байтам
Тип данных void ничего не означает, поэтому он не имеет размера.
Прежде чем перейти к диапазону значений для этих типов данных, необходимо изучить еще одну важную концепцию, а именно Модификаторы типов данных .
Модификаторы типа данных C:
В языке C существует 4 модификатора типа данных , которые используются вместе с основными типами данных для их дальнейшей категоризации.
Например, если вы говорите, что есть детская площадка, это может быть парк, детская площадка или стадион, но если вы конкретизируете и говорите, что есть площадка для игры в крикет или футбольный стадион, то это будет даже точнее.
Подобным образом в языке C есть модификаторы , делающие первичные типы данных более конкретными .
Модификаторы:
подписано
без знака
длинный
короткий
Как следует из названия, со знаком и без знака используются для представления со знаком (+ и -) и беззнаковые(только +) значения для любого типа данных. А long и short влияют на диапазон значений для любого типа данных.
Например, signed int , unsigned int , short int , long int и т.
д. являются допустимыми типами данных в языке C.
длинное длинное число = 123456789987654321; // мы не можем сохранить такое большое значение, используя тип данных int.
Теперь посмотрим диапазон для разных типов данных, сформированный в результате 5 первичных типов данных вместе с указанными выше модификаторами.
C Тип данных Диапазон значений
В таблице ниже представлен диапазон для различных типов данных в языке C.
| Тип | Типовой размер в битах | Минимальный диапазон | Спецификатор формата |
|---|---|---|---|
символ | 8 | от -127 до 127 | %с |
без знака символ | 8 | от 0 до 255 | %с |
подписанный символьный | 8 | от -127 до 127 | %с |
ряд | 16 или 32 | -32 767 до 32 767 | %d , %i |
без знака целое число | 16 или 32 | от 0 до 65 535 | %у |
подписанный международ. | 16 или 32 | То же, что и целое число | %d , %i |
короткий целый | 16 | -32 767 до 32 767 | %HD |
без знака короткий целочисленный | 16 | от 0 до 65 535 | %ху |
подписанный короткий инт | 16 | То же, что и короткое целое | %HD |
длинный целый | 32 | -2 147 483 647 до 2 147 483 647 | %ld , %li |
длинный длинный целый | 64 | -(2 63 — 1) до 2 63 — 1 (добавлен стандартом C99) | %lld , %lli |
подписанный длинный целочисленный | 32 | То же, что и long int | %ld , %li |
беззнаковые длинные целые | 32 | от 0 до 4 294 967 295 | %лу |
беззнаковое длинное длинное целое | 64 | 2 64 — 1 (Добавлен стандартом C99) | %llu |
поплавок | 32 | От 1E-37 до 1E+37 с точностью до шести цифр | %f |
двойной | 64 | От 1E-37 до 1E+37 с точностью до десяти цифр | %лд |
длинный двойной | 80 | От 1E-37 до 1E+37 с точностью до десяти цифр | %Lf |
Как видно из таблицы выше, при различных сочетаниях типа данных и модификаторов меняется диапазон значений.
Когда мы хотим напечатать значение любой переменной с любым типом данных, мы должны использовать спецификатор формата в операторе printf() .
Что произойдет, если значение выйдет за пределы допустимого диапазона?
Что ж, если попытаться присвоить любому типу данных значение, превышающее допустимый диапазон значений, то компилятор языка Си выдаст ошибку. Вот простой пример кода, чтобы показать это:
#includeинтервал основной () { // допустимое значение до 65535 беззнаковое короткое целое x = 65536; вернуть 0; } 9 Код запуска →
Когда модификатор типа используется без какого-либо типа данных , тип данных
intустанавливается в качестве типа данных по умолчанию. So,unsignedmeansunsignedint,signedmeanssignedint,longmeanslongint, andshortmeansshortint.Что означает
подписанныйибеззнаковыйзначит?Это немного сложно объяснить, но давайте попробуем.
Проще говоря, модификатор
без знакаозначает все положительные значения , а модификаторсо знакомозначает как положительные, так и отрицательные значения .Когда компилятор получает числовое значение, он преобразует это значение в двоичное число, что означает комбинацию 0 и 1. Например, 32767 в двоичном виде равно 01111111 11111111 и 1 в двоичном формате — это 01 (или 0001) , 2 — это 0010 и так далее.
В случае целого числа со знаком бит старшего разряда или первая цифра слева (в двоичном формате) используется как флаг знака . Если флаг знака равен 0 , число положительное , а если 1 , число отрицательное .
И поскольку один бит используется для отображения того, является ли число положительным или отрицательным, следовательно, для представления самого числа на один бит меньше, следовательно, диапазон меньше.
Для со знаком int , 11111111 11111111 означает -32 767 и поскольку первый бит является флагом знака , чтобы пометить его как отрицательное число, а остальные представляют число. Тогда как в случае unsigned int , 11111111 11111111 означает 65,535 .
Производные типы данных в C
Хотя существует 5 основных типов данных, в языке C также есть несколько производных типов данных, которые используются для хранения сложных данных.
Производные типы данных — это не что иное, как первичные типы данных, но немного искаженные или сгруппированные вместе, такие как массив , структура , объединение, и указатели .




