Основные типы данных. Классификация их типов. Модификация базовых типов. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основные типы данных. Классификация их типов. Модификация базовых типов.



Типом данных называется набор предопределеннфх значений и набор операций, которые можно выполнить

над переменной данного типа. Переменные можно инициализировать ы месте их описания.

Пример:

int heigh=71;

float k=26034.12;

Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением

ключевого слова const к спецификатору-типа. Объекты с типом const представляют собой данные,

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

Отметим, что если после слова const отсутствует спецификатор-типа, то подразумевается

спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив,

структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться

немодифицируемым, т.е. значение ему может быть присвоено только один раз.

Примеры:

const double A=2.128E-2;

const B=286; // подразумевается const int B=286

Целый тип данных

Для определения данных целого типа используются различные ключевые слова, которые определяют

диапазон значений и размер области памяти, выделяемой под переменные (таблица 5).

Таблица 5

Тип Размер памяти в байтах Диапазон значений
char 1 от -128 до 127
int Для IBM XT,AT,SX,DX 2  
short 2 от -32768 до 32767
long 4 от -2 147 483 648 до 2 147 483 647
unsigned shar 1 oт 0 до 255
unsigned int Для IBM XT,AT,SX,DX 2  
unsigned short 2 от 0 до 65535
unsigned long 4 от 0 до 4 294 967 295

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

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

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

В случае отсутствия ключевого слова unsigned целая переменная считается знаковой. В том случае,

если спецификатор типа состоит из ключевого типа signed или unsigned и далее следует

идентификатор переменной, то она будет рассматриваться как переменная типа int. Например:

unsigned int n;

unsigned int b;

int c;   //подразумевается signed int c

unsigned d; //подразумевается unsigned int d

signed f; //подразумевается signed int f

Типы данных с плавающей точкой

Для переменных, представляющих число с плавающей точкой, используются следующие модификаторы-

типа:

 Таблица 6

Тип Размер памяти в байтах Диапазон значений
float 4 от 3,4*10 -38 до 3,4*10 + 38
double 8 от 1,7 *10 -3 0 8 до 3,4*10 + 3 0 8
long double 10 от 3,4*10 - 4932 до 1,1 *10 +4932

Пример:

float f, a, b;

double x,y;

Символы

Символьный тип в языке С относится к целым типам данных. Отметим, что модификатор-типа char

используется для представления символа (из массива представление символов) или для объявления

строковых литералов.

Таблица 7

Тип Размер памяти в байтах Диапазон значений
char 1 от -128 до 127
signed char 1 от -128 до 127
unsigned char 1 от 0 до 255

Отметим также, что восьмеричные и шестнадцатеричные константы также могут иметь модификатор

unsigned. Это достигается указанием префикса u или U после константы, константа без этого

префикса считается знаковой.

Например:

0xA8C (int signed);

01786l (long signed);

0xF7u (int unsigned);

Тип void

Используется для определения функций, которые не возвращают значения для указания пустого списка

аргумента функций, как базовый тип для указателей и в операуии приведения типов.

Преобразование типов

Приведение типов – изменение (преобразование) типа объекта. Для выполнения преобразования

необходимо перед объектом записать в скобках нужный тип:

(имя-типа) операнд;

Приведение типов используется для преобразования объектов одного скалярного типа в другой скалярный тип. Однако выражению с приведением типа не может быть присвоено другое значение.

Пример:

int i;

double x;

x=(double)i+2.0;

В этом примере целая переменная i с помощью операции приведения типов приводится к плавающему

типу, а затем уже участвует в вычислении выражений.


 

Константы.

Константы – фиксированные величины, которые не могут быть изменены в программе. В языке С разделяют четыре типа констант: целые константы, константы с плавающей запятой, символьные константы и строковые литералы.

Целая константа – это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целую величину в одной из следующих форм: десятичной, восьмеричной или шестнадцатеричной.

Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не должна быть нулем (в противном случае число будет воспринято как восьмеричное).

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

Шестнадцатеричная константа начинается с обязательной последовательности 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (цифры представляющие собой набор цифр шестнадцатеричной

системы счисления: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

Примеры целых констант:

    Десятичная Восьмеричная  Шестнадцатеричная

    константа  константа     константа

        16        020           0x10

       127        0117          0x2B

       240        0360          0XF0

Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0x2A, -088, -16.

Каждой целой константе присваивается тип, определяющий преобразования, которые должны быть выполнены, если константа используется в выражениях. Тип константы определяется следующим образом:

- десятичные константы рассматриваются как величины со знаком, и им присваивается тип int (целая) или long (длинная целая) в соответствии со значением константы. Если константа меньше 32768, то ей присваивается тип int в противном случае long.

- восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковая целая), long или unsigned long в зависимости от значения константы согласно табл 8.

Таблица 8

Диапазон шестнадцатеричных констант Диапазон восьмеричных констант Тип
0x0 - 0x7FFF 0 - 077777 int
0X8000 - 0XFFFF 0100000 - 0177777 unsigned int
0X10000 - 0X7FFFFFFF 0200000 - 017777777777 long
0X80000000 - 0XFFFFFFFF 020000000000 - 037777777777 unsigned long

Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить

букву "l" или "L". Пример:

5l, 6l, 128L, 0105L, OX2A11L.

Константа с плавающей точкой - десятичное число, представленное в виде действительной величины с десятичной точкой или экспонентой. Формат имеет вид:

[ цифры ].[ цифры ] [ Е|e [+|-] цифры ]

Число с плавающей точкой состоит из целой и дробные части и (или) экспоненты. Константы с плавающей точкой представляют положительные величины удвоенной точности (имеют тип double). Для определения отрицательной величины необходимо сформировать константное выражение, состоящее из знака минуса и положительной константы.

Примеры: 115.75, 1.5Е-2, -0.025,.075, -0.85Е2

Символьная константа - представляется символом заключенном в апострофы. Управляющая последовательность рассматривается как одиночный символ, допустимо ее использовать в символьных константах. Значением символьной константы является числовой код символа. Примеры:

’ ’- пробел,

’Q ’- буква Q,

’\n’ - символ новой строки,

’\\’ - обратная дробная черта,

’\v’ - вертикальная табуляция.

Символьные константы имеют тип int и при преобразовании типов дополняются знаком.

Строковая константа (литерал) - последовательность символов (включая строковые и прописные буквы русского и латинского а также цифры) заключенные в кавычки ("). Например: "Школа N 35", "город Тамбов", "YZPT КОД".

Отметим, что все управляющие символы, кавычка ("), обратная дробная черта (\) и символ новой строки в строковом литерале и в символьной константе представляются соответствующими управляющими последовательностями. Каждая управляющая последовательность представляется как один символ.

Например, при печати литерала "Школа \n N 35" его часть "Школа" будет напечатана на одной строке, а вторая часть "N 35" на следующей строке.

Символы строкового литерала сохраняются в области оперативной памяти. В конец каждого строкового литерала компилятором добавляется нулевой символ, представляемый управляющей последовательностью \0.

Строковый литерал имеет тип char[]. Это означает, что строка рассматривается как массив символов.

Отметим важную особенность, число элементов массива равно числу символов в строке плюс 1, так как нулевой символ (символ конца строки) также является элементом массива. Все строковые литералы рассматриваются компилятором как различные объекты. Строковые литералы могут располагаться на нескольких строках. Такие литералы формируются на основе использования обратной дробной черты и клавиши ввод. Обратная черта с символом новой строки игнорируется компилятором, что приводит к

тому, что следующая строка является продолжением предыдущей. Например:

"строка неопределенной \n длины" полностью идентична литералу "строка неопределенной длинны"

 

Для сцепления строковых литералов можно использовать символ (или символы) пробела. Если в программе встречаются два или более строковых литерала, разделенные только пробелами, то они будут рассматриваться как одна символьная строка. Этот принцип можно использовать для формирования строковых литералов занимающих более одной строки.


 

Переменные.

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

 



Поделиться:


Последнее изменение этой страницы: 2021-08-16; просмотров: 37; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.146.105.137 (0.015 с.)