Диапазоны типов данных | Microsoft Learn
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
32-разрядные и 64-разрядные компиляторы Microsoft C++ распознают типы в таблице далее в этой статье.
int
(unsigned int
)__int8
(unsigned __int8
)__int16
(unsigned __int16
)__int32
(unsigned __int32
)__int64
(unsigned __int64
)short
(unsigned short
)long
(unsigned long
)long long
(unsigned long long
)
Если имя начинается с двух символов подчеркивания (__
), тип данных является нестандартным.
Диапазоны, представленные в следующей таблице, включают указанные значения.
Имя типа | Байты | Другие имена | Диапазон значений |
---|---|---|---|
int | 4 | signed | От -2 147 483 648 до 2 147 483 647 |
unsigned int | 4 | unsigned | От 0 до 4 294 967 295 |
__int8 | 1 | char | От -128 до 127 |
unsigned __int8 | 1 | unsigned char | От 0 до 255 |
__int16 | 2 | short , short int , signed short int | От -32 768 до 32 767 |
unsigned __int16 | 2 | unsigned short , unsigned short int | От 0 до 65 535 |
__int32 | 4 | signed , signed int , int | От -2 147 483 648 до 2 147 483 647 |
unsigned __int32 | 4 | unsigned , unsigned int | От 0 до 4 294 967 295 |
__int64 | 8 | long long , signed long long | От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 |
unsigned __int64 | 8 | unsigned long long | От 0 до 18 446 744 073 709 551 615 |
bool | 1 | нет | false или true |
char | 1 | нет | От -128 до 127 по умолчанию От 0 до 255 при компиляции с помощью |
signed char | 1 | нет | От -128 до 127 |
unsigned char | 1 | нет | От 0 до 255 |
short | 2 | short int , signed short int | От -32 768 до 32 767 |
unsigned short | 2 | unsigned short int | От 0 до 65 535 |
long | 4 | long int , signed long int | От -2 147 483 648 до 2 147 483 647 |
unsigned long | 4 | unsigned long int | От 0 до 4 294 967 295 |
long long | 8 | нет (но эквивалентно __int64 ) | От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 |
unsigned long long | 8 | нет (но эквивалентно unsigned __int64 ) | От 0 до 18 446 744 073 709 551 615 |
enum | непостоянно | ||
float | 4 | нет | 3,4E +/- 38 (7 знаков) |
double | 8 | нет | 1,7E +/- 308 (15 знаков) |
long double | то же, что и double | нет | То же, что double |
wchar_t | 2 | __wchar_t | От 0 до 65 535 |
В зависимости от характера использования переменная типа __wchar_t
обозначает расширенный символьный или многобайтовый символьный тип.
L
.signed
и unsigned
— это модификаторы, которые можно использовать с любым целочисленным типом, кроме типа bool
. Обратите внимание, что char
, signed char
и unsigned char
— это три разных типа, предназначенных для механизмов, подобных перегрузке и шаблонам.
Размер типов int
и unsigned int
— 4 байта. Однако переносимый код не должен зависеть от размера int
, поскольку языковой стандарт позволяет варьировать его в зависимости от реализации.
C и C++ в Visual Studio также поддерживают целочисленные типы с указанием размера. Дополнительные сведения см. в разделах __int8, __int16, __int32, __int64
и Integer Limits.
Дополнительные сведения об ограничениях размеров каждого типа см. в разделе Встроенные типы.
Диапазон перечисляемых типов зависит от контекста языка и указанных флажков компилятора. Дополнительные сведения см. в статьях Объявления перечислений C и Объявления перечислений C++.
Ключевые слова
Встроенные типы
C++ — Типы данных
При написании программы на любом языке вам нужно использовать различные переменные для хранения различной информации. Переменные — это не что иное, как зарезервированные ячейки памяти для хранения значений. Это означает, что при создании переменной вы сохраняете некоторое пространство в памяти.
Вы можете хранить информацию различных типов данных, таких как символ, широкий символ, целое число, плавающая точка, двойная плавающая точка, логическое значение и т. Д. На основе типа данных переменной операционная система выделяет память и решает, что можно сохранить в зарезервированная память.
Примитивные встроенные типы
C ++ предлагает программисту богатый набор встроенных, а также пользовательских типов данных. В следующих таблицах перечислены семь основных типов данных C ++:
Type | Keyword |
---|---|
Boolean | bool |
Character | char |
Integer | int |
Floating point | float |
Double floating point | double |
Valueless | void |
Wide character | wchar_t |
Некоторые из основных типов могут быть изменены с использованием одного или нескольких модификаторов этого типа:
- signed
- unsigned
- short
- long
В следующей таблице показан тип переменной, объем памяти, который требуется для хранения значения в памяти, и то, что является максимальным и минимальным значением, которое может быть сохранено в таких переменных.
Type | Typical Bit Width | Typical Range |
---|---|---|
char | 1byte | -127 to 127 or 0 to 255 |
unsigned char | 1byte | 0 to 255 |
signed char | 1byte | -127 to 127 |
int | 4bytes | -2147483648 to 2147483647 |
unsigned int | 4bytes | 0 to 4294967295 |
signed int | 4bytes | -2147483648 to 2147483647 |
short int | 2bytes | -32768 to 32767 |
unsigned short int | Range | 0 to 65,535 |
signed short int | Range | -32768 to 32767 |
long int | 4bytes | -2,147,483,648 to 2,147,483,647 |
signed long int | 4bytes | same as long int |
unsigned long int | 4bytes | 0 to 4,294,967,295 |
float | 4bytes | +/- 3. 4e +/- 38 (~7 digits) |
double | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
long double | 8bytes | +/- 1.7e +/- 308 (~15 digits) |
wchar_t | 2 or 4 bytes | 1 wide character |
Размер переменных может отличаться от размера, указанного в приведенной выше таблице, в зависимости от компилятора и компьютера, который вы используете. Ниже приведен пример, который даст правильный размер различных типов данных на вашем компьютере.
#include <iostream>
using namespace std;
int main() {
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of short int : " << sizeof(short int) << endl;
cout << "Size of long int : " << sizeof(long int) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
return 0;
}
В этом примере используется endl , который вводит символ новой строки после каждой строки, а оператор << используется для передачи нескольких значений на экран. Мы также используем оператор sizeof () для получения размера различных типов данных.
Когда приведенный выше код компилируется и выполняется, он производит следующий результат, который может варьироваться от машины к машине:
Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 4
Size of float : 4
Size of double : 8
Size of wchar_t : 4
Декларации typedef
Вы можете создать новое имя для существующего типа с помощью typedef
. Ниже приведен простой синтаксис для определения нового типа с использованием typedef:
typedef type newname;
Например, следующее говорит компилятору, что ногами является другое имя для int:
typedef int feet;
Теперь следующая декларация совершенно легальна и создает целочисленную переменную, называемую расстоянием:
feet distance;
Перечисленные типы
Перечислимый тип объявляет необязательное имя типа и набор из нуля или более идентификаторов, которые могут использоваться как значения типа. Каждый перечислитель является константой, тип которой является перечислением. Для создания перечисления требуется использование ключевого слова enum . Общий вид типа перечисления:
enum enum-name { list of names } var-list;
Здесь enum-name — это имя типа перечисления. Список имен разделяется запятой. Например, следующий код определяет перечисление цветов, называемых цветами, и переменной c цвета типа. Наконец, c присваивается значение «blue».
enum color { red, green, blue } c;
c = blue;
По умолчанию значение первого имени равно 0, второе имя имеет значение 1, а третье — значение 2 и т. Д. Но вы можете указать имя, определенное значение, добавив инициализатор. Например, в следующем перечислении зеленый будет иметь значение 5.
enum color { red, green = 5, blue };
Здесь blue будет иметь значение 6, потому что каждое имя будет больше, чем предыдущее.
типов данных в C | GATE Notes
Как следует из названия, здесь типы данных относятся к типу данных, которые мы используем в программе на C. Всякий раз, когда мы используем тип данных в программе на C, мы определяем используемые в нем переменные или функции. Мы делаем это потому, что должны указать тип используемых данных, чтобы компилятор точно знал, какой тип данных он должен ожидать от данной программы.
В этой статье мы более подробно рассмотрим типы данных в C в соответствии с программой GATE для CSE (Computer Science Engineering). Читайте дальше, чтобы узнать больше.
Содержание
- Назначение типов данных в C
- Пример типов данных в C
- Типы типов данных в C
- Первичные типы данных в C
- Различные значения типов данных
- Модификаторы типа данных в языке программирования C
- Диапазон значений типа данных C
- Когда значение типа данных выходит за пределы допустимого диапазона
- Производные типы данных в C
- Использование типов данных C
- Практические задачи по типам данных в C
- Часто задаваемые вопросы
Назначение типов данных в C
Типы данных, используемые в языке C, относятся к обширной системе, которую мы используем для объявления различных типов функций или переменных в программе. Здесь на основе типа переменной, присутствующей в программе, мы определяем место, которое она занимает в памяти, а также то, как будет интерпретироваться сохраненная битовая комбинация.
Тип данных определяет тип данных, которые может хранить переменная, например целочисленные, с плавающей запятой, символьные и т. д.
Пример типов данных в C
Давайте рассмотрим пример, чтобы лучше понять типы данных.
Например, мы можем захотеть использовать некоторые числа, такие как 5, 8, 600, или, возможно, число с десятичной точкой, такое как 43,59, 127,368, 271,49, или, возможно, текст, такой как «капучино». Тогда компилятор, используемый в языке C, будет обрабатывать все это совсем по-другому. Таким образом, здесь мы используем разные типы данных для определения того, какие типы данных мы хотим использовать в программе.
Типы типов данных в C
Вот пять основных категорий, на которые делятся типы данных в языке C:
Тип данных | Пример типа данных |
Тип базовых данных | С плавающей запятой, целое, двойное, символьное. |
Тип производных данных | Объединение, структура, массив и т. д. |
Тип нумерованных данных | перечисления |
Пустой тип данных | Пустое значение |
Тип Bool | Правда или Ложь |
Базовые типы данных также известны как первичные типы данных в программировании на C.
Первичные типы данных в C
Вот пять примитивных или первичных типов данных, которые можно найти в языке программирования C:
1. Целое число — Мы используем их для хранения различных целых чисел, таких как 5, 8, 67, 2390 и т. д.
2. Символ – Относится ко всем наборам символов ASCII, а также к отдельным алфавитам, таким как «x», «Y» и т. д.
3. Double — К ним относятся все большие типы числовых значений, которые не относятся ни к типу данных с плавающей запятой, ни к целочисленному типу данных. Посетите раздел Double Data Type in C, чтобы узнать больше.
4. С плавающей запятой — Относятся ко всем действительным числам или десятичным точкам, например, 40,1, 820,673, 5,9 и т. д.
5. Void – Этот термин относится к отсутствию значений вообще. В основном мы используем этот тип данных при определении функций в программе.
В программе используются различные ключевые слова для указания типов данных, упомянутых выше. Вот ключевые слова, которые мы используем:
Используемое ключевое слово | Тип данных |
целое число | Целое число |
поплавок | С плавающей запятой |
пустота | Пустота |
символ | Символ |
двойной | Двойной |
Размер каждого типа данных определяется в байтах/битах. Кроме того, эти типы данных могут хранить очень широкий диапазон значений.
Различные значения типов данных
Размер любого заданного типа данных в программе во многом зависит от типа процессора, а также от компилятора. Проще говоря, размер типа данных полностью зависит от компьютера, на котором мы запускаем язык C, а также от версии компилятора программ C, который мы установили на компьютере.
Тип данных int может иметь размер 4/2 байта.
Запомнить размер типа данных int очень просто. Данный размер обычно равен длине слова среды выполнения программы. Другими словами, int будет 2 байта или 16 бит в случае 16-битной среды. Однако int будет 4 байта или 32 бита в случае 32-битной среды.
Тип данных char — 1 байт.
Размер типа данных char обычно составляет 8 бит или 1 байт. Никаких изменений не произойдет с разными компиляторами и интерпретаторами. Это означает, что тип используемого компилятора или процессора никак не повлияет на его размер.
Тип данных double имеет размер 8 байт.
Размер типа данных double в основном составляет 64 бита или 8 байтов. Он способен хранить значения, которые сравнительно вдвое превышают размер байтов, которые может хранить тип данных с плавающей запятой. Вот почему он известен как двойной.
При просмотре всех 64 бит программа имеет 1 бит для представления знака, экспонента использует 11 бит, а оставшиеся 52 бита используются для мантиссы.
Этот тип данных может содержать около 15-17 цифр как после, так и перед десятичной дробью типа данных.
Тип данных с плавающей точкой имеет размер 4 байта.
Размер типа данных float в основном составляет 32 бита или 4 байта. Тип данных float имеет одинарную точность по своей природе, и мы используем его для хранения десятичных значений. Это помогает хранить различные большие значения, но float сравнительно быстрее, чем double. Это потому, что double работает со сравнительно большими значениями данных. Таким образом, он сравнительно медленнее.
Пустой тип данных — 0 байт.
Поскольку тип данных void не имеет значения, он вообще не имеет размера.
Существует ряд значений, подходящих для всех этих типов данных. Но прежде чем мы рассмотрим это, давайте взглянем на модификаторы, которые используются в типах данных.
Модификаторы типов данных в языке программирования C
Существует четыре основных типа модификаторов для всех типов данных, используемых в языке C. Мы используем их вместе со всеми основными типами данных для дальнейшей их классификации.
Например, если мы скажем, что на столе лежит плитка шоколада, собеседник будет знать, что на столе лежит плитка шоколада. Но если мы уточним и скажем, что на столе лежит плитка темного шоколада или плитка молочного шоколада, это станет гораздо более ясным и конкретным для человека, который слушает.
Очень похожим образом модификаторы в языке C помогают сделать первичные или примитивные типы данных более конкретными.
Вот несколько модификаторов:
- короткий
- длинный
- без знака
- подписано
Как следует из приведенных здесь имен, мы используем модификаторы без знака и знака для представления значений без знака (только +) и со знаком (- и +) в любом заданном типе данных. Кроме того, короткие и длинные модификаторы влияют на диапазон значений любого заданного типа данных.
Например, long int, short int, unsigned int, signed int и т. д. — все это очень допустимые типы данных в языке программирования C.
Теперь, если мы объединим все упомянутые выше модификаторы с пятью примитивными или первичными типами данных, то это приведет к образованию следующих типов данных:
Диапазон значений типа данных C
Диапазон всех типов данных языка C представлен в таблице ниже:
Тип данных | Спецификатор формата | Минимальный диапазон | Типовой размер биты |
беззнаковый символ | %с | от 0 до 255 | 8 |
символ | %с | от -127 до 127 | 8 |
подписанный символ | %с | от -127 до 127 | 8 |
целое число | %д, %i | -32 767 до 32 767 | 16 или 32 |
целое число без знака | % | от 0 до 65 535 | 16 или 32 |
подписанный инт | %д, %i | То же, что и целое число | То же, что и целое 16 или 32 |
короткое целое | %HD | от -32 767 до 32 767 | 16 |
короткое целое без знака | %ху | от 0 до 65 535 | 16 |
подписанный короткий интервал | %HD | То же, что и короткое целое | 16 |
длинное целое | %ld, %li | -2 147 483 647 до 2 147 483 647 | 32 |
длинное длинное целое | %lld, %lli | -(263-1) до 263-1 (будет добавлено стандартом C99) | 64 |
подписанное длинное целое | %ld, %li | То же, что и long int | 32 |
длинное целое без знака | %лу | от 0 до 4 294 967 295 | 32 |
длинный без знака длинное целое | %llu | 264 – 1 (будет добавлен стандартом C99) | 64 |
поплавок | %f | от 1E-37 до 1E+37 вместе с шестью цифрами точности здесь | 32 |
двойной | %лв | от 1E-37 до 1E+37 вместе с шестью цифрами точности здесь | 64 |
длинный двойной | %Лф | от 1E-37 до 1E+37 вместе с шестью цифрами точности здесь | 80 |
Как видно из приведенной выше таблицы, различные диапазоны и комбинации модификаторов и типов данных приводят к диапазону изменяющихся значений.
Необходимо использовать спецификатор формата, когда они хотят напечатать любое значение переменной в программе. Они должны сделать это в операторе printf().
Когда значение типа данных выходит за пределы допустимого диапазона
Всякий раз, когда мы пытаемся присвоить заданному типу данных какое-либо значение в программе, превышающее допустимый диапазон значений, компилятор языка C выдает ошибку.
Давайте рассмотрим пример, чтобы лучше понять это.
#include
интервал основной() {
// максимально допустимое значение в коротком целом со знаком равно 32767
подписанный короткий int x = 34767; 9
Всякий раз, когда мы используем модификатор типа, даже без использования какого-либо типа данных, программа устанавливает тип данных int как форму типа данных по умолчанию. Здесь signed будет ссылаться на signed int, unsigned будет ссылаться на unsigned int, short будет ссылаться на short int, а также long будет ссылаться на long int.
Значение Unsigned, а также Signed
Это немного сложно понять. Но проще говоря, модификатор со знаком будет относиться как к отрицательным, так и к положительным значениям, а модификатор без знака относится ко всем положительным значениям.
Всякий раз, когда компилятор получает какое-либо числовое значение, он преобразует это самое значение программы в двоичное число. Это означает, что это будет комбинация различных единиц и нулей. Например, двоичное значение 1 — это 0001 или 01, двоичное значение числа 2 — 0010, число 32767 — 01111111 11111111 и многое другое.
Когда мы говорим о целых числах со знаком, мы используем самую первую цифру, начинающуюся слева (в двоичных значениях), или самый старший бит порядка в качестве флага знака. Число будет отрицательным, если флаг знака равен 1. И наоборот, оно будет положительным, если флаг знака равен 0.
И поскольку мы используем один бит, чтобы показать, является ли заданное число положительным или отрицательным, в самой программе число будет представляться на один бит меньше. Таким образом, диапазон здесь очень меньше.
Например, в случае целого числа со знаком двоичная цифра 11111111 11111111 будет означать число -32 767. Здесь первый бит будет служить флагом знака, который помечает его как отрицательное число. Остальные биты будут представлять фактическое число 32767. Та же самая двоичная цифра 11111111 11111111 будет означать 65 535 в случае целого числа без знака.
Производные типы данных в C
Несмотря на то, что существует пять основных типов данных, в языке C также присутствуют различные производные типы данных, которые помогают хранить сложные типы данных.
Таким образом, производные типы данных в основном являются первичными типами данных, но они немного более сгруппированы или запутаны, например, структура, массив, указатели, объединение и т. д. Посетите Производные типы данных в C , чтобы узнать больше.
Использование типов данных C
Тип данных C используется для определения типа данных, которые мы используем в программе. Давайте рассмотрим каждый из них подробно.
Тип данных char
Этот тип данных в основном относится ко всем символьным значениям, заключенным в одинарные кавычки. Кроме того, этот тип данных находится в диапазоне от -127 до 127.
Как мы видим, мы можем использовать любое из меньших целых значений в типе данных char.
Например,
символьный статус = ‘X’
Поплавок Тип данных
Мы используем тип данных float для хранения всех действительных чисел. Они могут иметь как экспоненциальную, так и десятичную часть (или дробную часть). Это в основном тип числа с одинарной точностью.
Например,
с плавающей запятой у = 127,675;
// с использованием суффикса f или F
с плавающей запятой х = 1000,5454F;
Как и тип данных int, мы также можем использовать тип данных float вместе с различными модификаторами.
Двойной тип данных
Мы храним в типе данных double такие числа, которые тип данных float не может хранить в программе (больше максимальной емкости типа данных float). Тип данных double — это, по сути, тип числа с двойной точностью. Он способен хранить от 15 до 17 значений как после, так и перед десятичной точкой.
Например,
двойной у = 424455236424564.24663224663322;
Человек будет использовать тип данных double в программе только тогда, когда это необходимо для хранения таких больших чисел. В противном случае мы не используем его, так как это сделает программу очень медленной.
Тип данных int
Мы используем тип данных int для хранения целых чисел, которые могут быть значениями, не имеющими экспоненциальной или десятичной части в числе.
Мы можем хранить восьмеричные (или с основанием 8), шестнадцатеричные (или с основанием 16) и десятичные (или с основанием 10) типы данных.
Например,
// простое целочисленное значение данных
интервал г = 310;
// отрицательное значение данных
г = -4260;
// значение данных без знака int с суффиксом u или U
инт z = 90U;
// длинное целое значение данных с суффиксом l или L
long int long_val = 87500L;
Когда мы используем в программе тип данных int, мы должны использовать суффикс «u» или «U», чтобы компилятор мог интерпретировать доступное значение беззнакового типа данных. С другой стороны, мы используем суффикс «l» или «L» при использовании значения типа long int в программе.
Практические задачи по типам данных в C
1. Какой из этих типов данных используется в языке C?
1. Целое число
2. Персонаж
3. Плавающая точка
4. Пустота
А. 1, 3 и 4
Б. 2, 3 и 4
С. 1, 2 и 3
Д. Все вышеперечисленное
Ответ – D. Все вышеперечисленное
2. Какие из этих типов данных являются базовыми или примитивными?
1. Целое число
2. Персонаж
3. Двойной
4. С плавающей запятой
5. Пустота
А. 1, 3 и 5
Б. 2, 4 и 5
С. 1, 2 и 4
Д. Все вышеперечисленное
Ответ – Д. Все перечисленное
3. Тип символьных данных находится в диапазоне от:
А. от -63 586 до 63 586
Б. от -127 до 127
С. от -50 до 50
Д. Имеет огромный ассортимент. Нет предела.
Ответ – A. от -63 586 до 63 586
4. Размер типа данных int:
1. 3 байта
2. 4 байта
3. 2 байта
4. 8 байт
А. 1 и 2
Б. 2 и 3
С. 3 и 4
Д. 1 и 4
Ответ – Б. 2 и 3
Часто задаваемые вопросы
Зачем нужны модификаторы в языке программирования C?
Существует четыре основных типа модификаторов для всех типов данных, используемых в языке C. Мы используем их вместе со всеми основными типами данных для дальнейшей их классификации.
Например, если мы говорим, что на столе лежит плитка шоколада, то человек, с которым мы говорим, знает, что на столе лежит плитка шоколада. Но если мы уточним и скажем, что на столе лежит плитка темного шоколада или плитка молочного шоколада, то это станет гораздо более ясным и конкретным для слушающего.
Очень похожим образом модификаторы в языке C помогают сделать первичные или примитивные типы данных более конкретными.
Вот несколько модификаторов:
- короткий
- длинный
- без знака
- подписано
Как следует из приведенных здесь имен, мы используем модификаторы без знака и знака для представления значений без знака (только +) и со знаком (- и +) в любом заданном типе данных. Кроме того, короткие и длинные модификаторы влияют на диапазон значений любого заданного типа данных.
Например, long int, short int, unsigned int, signed int и т. д. — все это очень допустимые типы данных в языке программирования C.
Что произойдет, если значение типа данных окажется вне допустимого диапазона?
Всякий раз, когда мы пытаемся присвоить какое-либо значение заданному типу данных в программе, превышающее допустимый диапазон значений, компилятор языка C выдает ошибку.
Давайте рассмотрим пример, чтобы лучше понять это.
#include
int main() { 9
Всякий раз, когда мы используем модификатор типа, даже без использования какого-либо типа данных, программа устанавливает тип данных int как форму типа данных по умолчанию. Здесь signed будет ссылаться на signed int, unsigned будет ссылаться на unsigned int, short будет ссылаться на short int, а также long будет ссылаться на long int.
Продолжайте учиться и следите за обновлениями, чтобы получать последние обновления об экзамене GATE, а также о критериях приемлемости GATE, GATE 2023, допускной карточке GATE, программе GATE для CSE (компьютерная инженерия), примечаниях GATE CSE, вопроснике GATE CSE и многом другом.
Также исследуйте,
- Указатели в C
- Разница между указателем на массив и массивом указателей
- Массив указателей в C
- Инкремент и основа системы счисленияОператоры декремента базы счисления в C
- Логические операторы в C
- Операторы в C
- Реляционные операторы в C
С | Типы данных | Codecademy
В C типы данных — это единицы значения, хранящиеся в памяти через переменные. Различные типы данных определяют их размер и функциональность.
Статическая типизация
Подобно C++ и Java, C — это язык со статической типизацией, в котором типы переменных известны во время компиляции, а не во время выполнения. В этом случае типы должны быть явно указаны программистом.
Классификации типов данных, поддерживаемые в C, включают следующие:
- Примитивные типы данных
- Пользовательские типы данных
- Производные типы данных
Типы также различаются объемом памяти, который они занимают, и диапазоном значений, которые они могут хранить. Это будет зависеть от компилятора компьютера. Целое число, например, может занимать 32 бита на одном компьютере или может храниться в 64 битах на другом.
Примитивные типы
Эти типы данных в основном являются числовыми (целые, двойные числа, числа с плавающей запятой и т. д.) и могут использоваться для арифметических операций, таких как вычитание и деление. Значения, использующие ключевое слово void
(для отсутствия данных), также считаются примитивными типами данных.
Производные типы данных
Эти типы данных являются производными от примитивных или фундаментальных типов данных. В C они могут быть трех типов:
- Массивы
- Функции
- Указатели
Пользовательские типы
Это набор данных со значениями, имеющими фиксированные значения, которые расширяют уже доступные примитивные типы. Пользователи определяют их на основе требований. C состоит из следующих определяемых пользователем типов:
- Enum
- Конструкции
- Определение типа
- Союз
Объем памяти
Тип | Размер | Диапазон значений |
---|---|---|
Символ | 1 байт | -128 — 127 или 0 — 255 |
Внутренний | 4 байта | -2 147 483 648 — 2 147 483 647 |
Поплавок | 4 байта | 1. 2E-38 — 3.4E+38 |
Двойной | 8 байт | 1.7Е-308 — 1.7Е+308 |
Int
Целые числа содержат только целые значения. Знак минус перед типом данных указывает, что значение отрицательное. Они могут быть выражены в шестнадцатеричной системе счисления (основание 16).
Примечание: Шестнадцатеричные целочисленные литералы всегда начинаются с
0
, за которым следует либоx
, либоX
, за которыми следуют различные комбинации цифр (0
—9 7 9076 - 7 9061 a 9061 9061 f
илиA
—F
).
инт = 0;
интервал = -5;
инт = 20;
int rgbColor = 0XFFEF0D; // Шестнадцатеричный
Пробелы не допускаются между цифрами и значениями больше 999 не используйте запятые.
целых сотен = 12 000; // Это неверно
int сотни2 = 12000 // Это правильно
Float и Double
Значения с плавающей запятой — это нецелые числа, содержащие десятичные разряды. Они могут иметь точность до 6 знаков после запятой и могут быть выражены в экспоненциальном представлении.
Примечание: Научная нотация — это форма выражения чисел, которые слишком велики или слишком малы для удобной записи в десятичной форме (например,
6.022E23
).
Двойные числа похожи на числа с плавающей запятой, но более точны и содержат до 15 знаков после запятой. Ниже приведен пример значений типа float
и double
:
float зарплата = 523,45;
двойной банктранзакция = 245.2518;
float counterFactor = 15.87E4;
Char
Символы используют одинарные кавычки '
для представления отдельных символов, таких как буквы, цифры, пробелы, специальные символы и символы. Каждый символ занимает в памяти только один байт. В C последовательности символов называются строками.