Си типы переменных: С | Типы данных

Содержание

НОУ ИНТУИТ | Лекция | Основы языка Си: структура Си-программы, базовые типы и конструирование новых типов, операции и выражения

< Лекция 12 || Лекция 8: 1234567

Аннотация: Лекция посвящена введению в язык Си. Объясняются общие принципы построения Си-программы: разбиение проекта на h- и c-файлы, т.е. разделение интерфейса и реализации, использование препроцессора. Приводятся базовые типы языка Си, конструкции массива и указателя, позволяющие строить новые типы, а также модификаторы типов. Рассматриваются всевозможные операции и выражения языка Си.

Ключевые слова: Си, Java, указатель, адрес, массив, программа, контроль, операционная система, API, application program, interface, компилятор, слово, оператор DEFINE, файл, прототип функции, имя функции, константы, переменная, представление, standard input, препроцессор, директива, символическое имя, понимание текста, функция, алгоритм, значение, аргумент, вещественное число, вычисленное значение, вызов функции, стандартный поток вывода, логический тип, класс, тело оператора, специальный тип данных, volatility, Intel 80286, операции, сложение, умножение, оператор присваивания, префиксные операции, сумма элементов массива, аргумент операции, эквивалентное выражение, type cast, неявное преобразование

Основы языка Си

intuit.ru/2010/edi»>В настоящее время язык Си и объектно-ориентированные языки его группы (прежде всего C++, а также Java и C#) являются основными в практическом программировании. Достоинство языка Си — это, прежде всего, его простота и лаконичность. Язык Си легко учится. Главные понятия языка Си, такие, как статические и локальные переменные, массивы, указатели, функции и т.д., максимально приближены к архитектуре реальных компьютеров. Так, указатель — это просто адрес памяти, массив — непрерывная область памяти, локальные переменные — это переменные, расположенные в аппаратном стеке, статические — в статической памяти. Программист, пишущий на Си, всегда достаточно точно представляет себе, как созданная им программа будет работать на любой конкретной архитектуре. Другими словами, язык Си предоставляет программисту полный контроль над компьютером.

Первоначально язык Си задумывался как заменитель Ассемблера для написания операционных систем.

Поскольку Си — это язык высокого уровня, не зависящий от конкретной архитектуры, текст операционной системы оказывался легко переносимым с одной платформы на другую. Первой операционной системой, написанной практически целиком на Си, была система Unix. В настоящее время почти все используемые операционные системы написаны на Си. Кроме того, средства программирования, которые операционная система предоставляет разработчикам прикладных программ (так называемый API — Application Program Interface), — это наборы системных функций на языке Си.

Тем не менее, область применения языка Си не ограничилась разработкой операционных систем. Язык Си оказался очень удобен в программах обработки текстов и изображений, в научных и инженерных расчетах. Объектно-ориентированные языки на основе Си отлично подходят для программирования в оконных средах.

В данном разделе будут приведены лишь основные понятия языка Си (и частично C++). Это не заменяет чтения полного учебника по Си или C++, например, книг [6] и [8].

Мы будем использовать компилятор C++ вместо Cи. Дело в том, что язык Си почти целиком входит в C++, т.е. нормальная программа, написанная на Си, является корректной C++ программой. Слово «нормальная» означает, что она не содержит неудачных конструкций, оставшихся от ранних версий Си и не используемых в настоящее время. Компилятор C++ предпочтительнее, чем компилятор Си, т.к. он имеет более строгий контроль ошибок. Кроме того, некоторые конструкции C++, не связанные с объектно-ориентированным программированием, очень удобны и фактически являются улучшением языка Си. Это, прежде всего, комментарии //, возможность описывать локальные переменные в любой точке программы, а не только в начале блока, и также задание констант без использования оператора #define препроцесора. Мы будем использовать эти возможности C++, оставаясь по существу в рамках языка Си.

Структура Си-программы

intuit.ru/2010/edi»>Любая достаточно большая программа на Си (программисты используют термин проект ) состоит из файлов. Файлы транслируются Си-компилятором независимо друг от друга и затем объединяются программой-построителем задач, в результате чего создается файл с программой, готовой к выполнению. Файлы, содержащие тексты Си-программы, называются исходными.

В языке Си исходные файлы бывают двух типов:

  • заголовочные, или h-файлы;
  • файлы реализации, или Cи-файлы.

Имена заголовочных файлов имеют расширение » .h «. Имена файлов реализации имеют расширения » .c » для языка Си и » .cpp «, » .cxx » или » .cc » для языка C++.

К сожалению, в отличие от языка Си, программисты не сумели договориться о едином расширении имен для файлов, содержащих программы на C++. Мы будем использовать расширение » .h » для заголовочных файлов и расширение » .cpp » для файлов реализации.

Заголовочные файлы содержат только описания. Прежде всего, это прототипы функций. Прототип функции описывает имя функции, тип возвращаемого значения, число и типы ее аргументов. Сам текст функции в h-файле не содержится. Также в h-файлах описываются имена и типы внешних переменных, константы, новые типы, структуры и т.п. В общем, h-файлы содержат лишь

интерфейсы, т.е. информацию, необходимую для использования программ, уже написанных другими программистами (или тем же программистом раньше). Заголовочные файлы лишь сообщают информацию о других программах. При трансляции заголовочных файлов, как правило, никакие объекты не создаются. Например, в заголовочном файле нельзя определить глобальную переменную. Строка описания

int x;

определяющая целочисленную переменную x, является ошибкой. Вместо этого следует использовать описание

extern int x;

означающее, что переменная x определена где-то в файле реализации (в каком — неизвестно). Слово extern (внешняя) лишь

сообщает информацию о внешней переменной, но не определяет эту переменную.

Файлы реализации, или Cи-файлы, содержат тексты функций и определения глобальных переменных. Говоря упрощенно, Си-файлы содержат сами программы, а h-файлы — лишь информацию о программах.

Представление исходных текстов в виде заголовочных файлов и файлов реализации необходимо для создания больших проектов, имеющих модульную структуру. Заголовочные файлы служат для передачи информации между модулями. Файлы реализации — это отдельные модули, которые разрабатываются и транслируются независимо друг от друга и объединяются при создании выполняемой программы.

intuit.ru/2010/edi»>Файлы реализации могут подключать описания, содержащиеся в заголовочных файлах. Сами заголовочные файлы также могут использовать другие заголовочные файлы. Заголовочный файл подключается с помощью директивы препроцессора #include. Например, описания стандартных функций ввода-вывода включаются с помощью строки

#include <stdio.h>

(stdio — от слов standard input/output). Имя h-файла записывается в угловых скобках, если этот h-файл является частью стандартной Си-библиотеки и расположен в одном из системных каталогов. Имена h-файлов, созданных самим программистом в рамках разрабатываемого проекта и расположенных в текущем каталоге, указываются в двойных кавычках, например,

#include "abcd.h"

Препроцессор — это программа предварительной обработки текста непосредственно перед трансляцией. Команды препроцессора называются директивами. Директивы препроцессора содержат символ диез # в начале строки.

Препроцессор используется в основном для подключения h-файлов. В Си также очень часто используется директива #define для задания символических имен констант. Так, строка

#define PI 3.14159265

задает символическое имя PI для константы 3.14159265. После этого имя PI можно использовать вместо числового значения. Препроцессор находит все вхождения слова PI в текст и заменяет их на константу. Таким образом, препроцессор осуществляет подмену одного текста другим. Необходимость использования препроцессора всегда свидетельствует о недостаточной выразительности языка. Так, в любом Ассемблере средства препроцессирования используются довольно интенсивно. В Си по возможности следует избегать чрезмерного увлечения командами препроцессора — это затрудняет понимание текста программы и зачастую ведет к трудно исправляемым ошибкам. В C++ можно обойтись без использования директив #define для задания констант. Например, в C++ константу PI можно задать с помощью нормального описания

const double PI = 3. 14159265;

Это является одним из аргументов в пользу применения компилятора C++ вместо Си даже при трансляции программ, не содержащих конструкции класса.

Дальше >>

< Лекция 12 || Лекция 8: 1234567

Типы данных и переменные. — it-black.ru

Типы данных и переменные. — it-black.ru Перейти к содержимому

Типы данных:


В языке Си различают понятия «тип данных» и «модификатор типа». Тип данных — это целый, а модификатор — со знаком или без знака. Целое со знаком будет иметь как положительные, так и отрицательные значения, а целое без знака — только положительные значения. В языке Си можно выделить пять базовых типов.

  • char — символьный.
  • Переменная типа char имеет размер 1 байт, ее значениями являются различные символы из кодовой таблицы, например: ‘ф’, ‘:’, ‘j’ (при записи в программе они заключаются в одинарные кавычки).

  • int — целый.
  • Размер переменной типа int в стандарте языка Си не определен. В большинстве систем программирования размер переменной типа int соответствует размеру целого машинного слова. Например, в компиляторах для 16-разрядных процессоров переменная типа int имеет размер 2 байта. В этом случае знаковые значения этой переменной могут лежать в диапазоне от -32768 до 32767.

  • float — вещественный.
  • Ключевое слово float позволяет определить переменные вещественного типа. Их значения имеют дробную часть, отделяемую точкой, например: -5.6, 31.28 и т.п. Вещественные числа могут быть записаны также в форме с плавающей точкой, например: -1.09e+4. Число перед символом «е» называется мантиссой, а после «е» — порядком. Переменная типа float занимает в памяти 32 бита. Она может принимать значения в диапазоне от 3.4е-38 до 3.4e+38.

  • double — вещественный двойной точности;
  • Ключевое слово double позволяет определить вещественную переменную двойной точности. Она занимает в памяти в два раза больше места, чем переменная типа float. Переменная типа double может принимать значения в диапазоне от 1.7e-308 до 1.7e+308.

  • void — не имеющий значения.
  • Ключевое слово void используется для нейтрализации значения объекта, например, для объявления функции, не возвращающей никаких значений.

Типы переменных:


Программы оперируют с различными данными, которые могут быть простыми и структурированными. Простые данные — это целые и вещественные числа, символы и указатели (адреса объектов в памяти). Целые числа не имеют, а вещественные имеют дробную часть. Структурированные данные — это массивы и структуры; они будут рассмотрены ниже.

Переменная — это ячейка в памяти компьютера, которая имеет имя и хранит некоторое значение. Значение переменной может меняться во время выполнения программы. При записи в ячейку нового значения старое стирается.

Хорошим стилем является осмысленное именование переменных. Имя переменной может содержать от одного до 32 символов. Разрешается использовать строчные и прописные буквы, цифры и символ подчёркивания, который в Си считается буквой. Первым символом обязательно должна быть буква. Имя переменной не может совпадать с зарезервированными словами.

Тип char

char — является самым экономным типом. Тип char может быть знаковым и беззнаковым. Обозначается, как «signed char» (знаковый тип) и «unsigned char» (беззнаковый тип). Знаковый тип может хранить значения в диапазоне от -128 до +127. Беззнаковый — от 0 до 255. Под переменную типа char отводится 1 байт памяти (8 бит).

Ключевые слова signed и unsigned указывают, как интерпретируется нулевой бит объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.

Тип int

Целочисленная величина int может быть short (короткой) или long (длинной). Ключевое слово short ставится после ключевых слов signed или unsigned. Таким образом, есть типы: signed short int, unsigned short int, signed long int, unsigned long int.

Переменная типа signed short int (знаковая короткая целая) может принимать значения от -32768 до +32767, unsigned short int (беззнаковая короткая целая) — от 0 до 65535. Под каждую из них отводится ровно по два байта памяти (16 бит).

При объявлении переменной типа signed short int ключевые слова signed и short могут быть пропущены, и такой тип переменной может быть объявлен просто int. Допускается и объявление этого типа одним ключевым словом short.

Переменная unsigned short int может быть объявлена как unsigned int или unsigned short.

Под каждую величину signed long int или unsigned long int отводится 4 байта памяти (32 бита). Значения переменных этого типа могут находиться в интервалах от -2147483648 до 2147483647 и от 0 до 4294967295 соответственно.

Существуют также переменные типа long long int, для которых отводится 8 байт памяти (64 бита). Они могут быть знаковыми и беззнаковыми. Для знакового типа диапазон значений лежит в пределах от -9223372036854775808 до 9223372036854775807, для беззнакового — от 0 до 18446744073709551615. Знаковый тип может быть объявлен и просто двумя ключевыми словами long long.

ТипДиапазонШестнадцатеричный диапазонРазмер
unsigned char0 … 2550x00 … 0xFF8 bit
signed char
или просто
char
-128 … 127-0x80 … 0x7F8 bit
unsigned short int
или просто
unsigned int или unsigned short
0 … 655350x0000 … 0xFFFF16 bit
signed short int или signed int
или просто
short или int
-32768 … 327670x8000 … 0x7FFF16 bit
unsigned long int
или просто
unsigned long
0 … 42949672950x00000000 … 0xFFFFFFFF32 bit
signed long
или просто
long
-2147483648 … 21474836470x80000000 … 0x7FFFFFFF32 bit
unsigned long long0 … 184467440737095516150x0000000000000000 … 0xFFFFFFFFFFFFFFFF64 bit
signed long long
или просто
long long
-9223372036854775808 … 92233720368547758070x8000000000000000 … 0x7FFFFFFFFFFFFFFF64 bit

Объявление переменных


Переменные объявляют в операторе описания. Оператор описания состоит из спецификации типа и списка имён переменных, разделённых запятой. В конце обязательно должна стоять точка с запятой.


  [модификаторы]  спецификатор_типа  идентификатор  [, идентификатор] ...
   

Модификаторы — ключевые слова signed, unsigned, short, long.
Спецификатор типа — ключевое слово char или int, определяющее тип объявляемой переменной.
Идентификатор — имя переменной.

Пример:


   char x;
   int a, b, c;
   unsigned long long y;
  

При объявлении переменную можно проинициализировать, то есть присвоить ей начальное значение.


  int x = 100;
  

В переменную x при объявлении сразу же будет записано число 100. Инициализируемые переменные лучше объявлять в отдельных строках.

Facebook

Twitter

  • No Comments

Группа в VK

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Облако меток

Похожие статьи

Структуры в языке Си.

Структура в языке Си – это тип данных, создаваемый программистом, предназначенный для объединения данных различных типов в единое целое. Структуры делают программу более модульной, что

Функции в языке Си.

Функция — это самостоятельная единица программы, которая спроектирована для реализации конкретной подзадачи. Функция является подпрограммой, которая может содержаться в основной программе, а может быть создана

Указатели в языке Си.

Указатель — переменная, содержащая адрес объекта. Указатель не несет информации о содержимом объекта, а содержит сведения о том, где размещен объект. Указатели похожи на метки,

Массивы в языке Си.

Массив — это непрерывный участок памяти, содержащий последовательность объектов одинакового типа, обозначаемый одним именем. Массивы — очень полезные сущности, особенно в тех случаях, когда необходимо

Instagram Vk Youtube Telegram Odnoklassniki

Полезно знать

Рубрики

Авторы

типов данных в 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

unix — справочные страницы для типов переменных c

спросил

Изменено 7 лет, 9 месяцев назад

Просмотрено 461 раз

Существуют ли какие-либо страницы Unix man или аналогичные стандартизированные справочники по объявлениям типов переменных (в c)?

Например, если мне нужны подробности о типе переменной float и различных способах ее объявления, существует ли стандартизированная ссылка в Unix? Справочные страницы компилятора? Или требуется онлайн-справочник или книга по C?

Я только что увидел float power=2. 345f , когда читал Learn C the Hard Way, мне было интересно, что означает f , и я быстро узнал, что man 3 float и man float ничего не производят, и даже man -k float , похоже, не дает никаких релевантных результатов.

Итак, где искать исчерпывающие ответы о типах переменных c и их объявлениях, желательно, чтобы их можно было получить в ОС без доступа в Интернет?

  • с
  • unix
  • справочная страница

2

Прочтите стандарт C11 . В Википедии вы найдете ссылки на все стандарты, включая старые. Не беспокойтесь (слишком сильно) о том, что они сквозняки; это должно быть связано с орфографическими исправлениями и т. д. Окончательные версии будут стоить денег, поэтому большинство здесь (и в других местах) используют черновики.

Справочные страницы Linux для функций C в основном любезны и охватывают аспекты POSIX.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *