Типы данных в языке С

Содержание

Слайд 2

ТИПЫ ДАННЫХ В ЯЗЫКЕ С. Все типы языка C можно разделить

ТИПЫ ДАННЫХ В ЯЗЫКЕ С.

Все типы языка C можно разделить на

основные и составные.
В языке C определено шесть основных типов данных для представления целых, вещественных, символьных и логических величин.
На основе этих типов программист может вводить описание составных типов.
К составным типам относятся массивы, перечисления, функции, структуры, ссылки, указатели, объединения и классы.
Слайд 3

Типы данных С Адресные Структурированные Простые Указатель Ссылка Регулярные Нерегулярные Целые

Типы данных С

Адресные

Структурированные

Простые

Указатель

Ссылка

Регулярные

Нерегулярные

Целые

bool

С плавающей точкой

enum

float

double

long double

signed

unsigned

char

short

int

long

void

Слайд 4

Основные типы данных. Основные (стандартные) типы данных: int (целый) char (символьный)

Основные типы данных.

Основные (стандартные) типы данных:
int (целый)
char (символьный)
wchar_t (расширенный символьный)
bool (логический)
float

(вещественный)
double (вещественный с двойной точностью)
void (пустой тип)

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

Слайд 5

Спецификаторы типа. спецификаторы типа: short (короткий) long (длинный) signed (знаковый) unsigned

Спецификаторы типа.

спецификаторы типа:
short (короткий)
long (длинный)
signed (знаковый)
unsigned (беззнаковый)

для уточнения формата внутреннего представления

и диапазона значений стандартных типов существует четыре
спецификатора типа.
Слайд 6

Целый тип (int). Размер типа int не определяется стандартом, а зависит

Целый тип (int).

Размер типа int не определяется стандартом, а зависит от

компьютера и компилятора.

Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного — 4 байта.

Спецификатор short перед именем типа указывает компилятору, что под число требуется отвести 2 байта.

независимо от разрядности процессора

Спецификатор long означает, что целая величина будет занимать 4 байта.

независимо от разрядности процессора

Таким образом, на 16-разрядном компьютере эквиваленты int и short int, а на 32-разрядном — int и long int.

Слайд 7

Целый тип (int). Внутреннее представление При использовании спецификатора signed старший бит

Целый тип (int).

Внутреннее представление

При использовании спецификатора signed старший бит числа интерпретируется

как знаковый

0 — положительное число, 1 — отрицательное

Спецификатор unsigned позволяет представлять только положительные числа

поскольку старший разряд рассматривается как часть кода числа

По умолчанию все целочисленные типы считаются знаковыми, то есть спецификатор signed можно опускать.

Слайд 8

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

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

Слайд 9

Целый тип (int). Константам, встречающимся в программе, приписывается тот или иной

Целый тип (int).

Константам, встречающимся в программе, приписывается тот или иной тип

в соответствии с их видом.

Если этот тип по каким-либо причинам не устраивает программиста, он может явно указать требуемый тип с помощью суффиксов.

L, l (long) и U, u (unsigned)
например, константа 32L будет иметь тип long и занимать 4 байта

Можно использовать суффиксы L и U одновременно

например, 0x22UL или 05Lu.

Типы short int, long int, signed int и unsigned int можно сокращать до
short, long, signed и unsigned соответственно.

Слайд 10

Символьный тип (char). Под величину символьного типа отводится количество байт, достаточное

Символьный тип (char).

Под величину символьного типа отводится количество байт, достаточное для

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

Как правило, это 1 байт.

Тип char, как и другие целые типы, может быть со знаком или без знака.

signed - можно хранить значения в диапазоне от -128 до 127.
unsigned - значения могут находиться в пределах от 0 до 255.

Величины типа char применяются также для хранения целых чисел, не превышающих границы указанных диапазонов.

Слайд 11

Расширенный символьный тип (wchar_t). Тип wchar_t предназначен для работы с набором

Расширенный символьный тип (wchar_t).

Тип wchar_t предназначен для работы с набором символов,

для кодировки которых недостаточно 1 байта

например, Unicode

Размер этого типа зависит от реализации

как правило, он соответствует типу short

Строковые константы типа wchar_t записываются с префиксом L

например, L"Game"

Слайд 12

Логический тип (bool). Величины логического типа могут принимать только значения true

Логический тип (bool).

Величины логического типа могут принимать только значения true и

false, являющиеся зарезервированными словами

Внутренняя форма представления значения false — 0 (нуль).
Любое другое значение интерпретируется как true.

При преобразовании к целому типу true имеет значение 1.

Слайд 13

Типы с плавающей точкой. Типы данных с плавающей точкой (float, double

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

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

long double)
хранятся в памяти компьютера иначе, чем целочисленные

Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка.

Мантисса — это число, большее 1.0, но меньшее 2.0

Поскольку старшая цифра мантиссы всегда равна 1, она не хранится.
Длина мантиссы определяет точность числа, а длина порядка — его диапазон.

Слайд 14

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

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

Слайд 15

Типы с плавающей точкой. Константы с плавающей точкой имеют по умолчанию

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

Константы с плавающей точкой имеют по умолчанию тип

double

Можно явно указать тип константы с помощью суффиксов
F, f (float) и L, l (long)

Например,
константа 2E+6L будет иметь тип long double
константа 1.82f — тип float

Слайд 16

Сводная таблица.

Сводная таблица.

Слайд 17

Тип void. Кроме перечисленных, к основным типам языка относится тип void

Тип void.

Кроме перечисленных, к основным типам языка относится тип void

множество значений

этого типа пусто

Тип void используется:

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

Слайд 18

Типы данных в языке С. Примечание В стандарте ANSI диапазоны значений

Типы данных в языке С.

Примечание

В стандарте ANSI диапазоны значений для основных

типов не задаются, определяются только соотношения между их размерами

sizeof(float) < sizeof(double) < sizeof(long double)
sizeof(char) < sizeof(short) < sizeof(int) < sizeof(long)

Минимальные и максимальные допустимые значения зависят от реализации и приведены в заголовочных файлах:

для целых типов — (),
для вещественных типов — (),
а также в шаблоне класса numerlc_limits

Слайд 19

Структура программы в языке С Программа на языке C состоит из:

Структура программы в языке С

Программа на языке C состоит из:
функций
описаний


директив препроцессора.
Одна из функций должна иметь имя main.
Выполнение программы начинается с первого оператора функции main.
Слайд 20

Простейшее определение функции Простейшее определение функции имеет следующий формат: тип_возвращаемого_значения имя

Простейшее определение функции

Простейшее определение функции имеет следующий формат:

тип_возвращаемого_значения имя ([ параметры

]){
операторы, составляющие тело функции
}

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

Слайд 21

Простейшее определение функции Функции мы рассмотрим несколько позже, ниже приведены лишь

Простейшее определение функции

Функции мы рассмотрим несколько позже, ниже приведены лишь самые

необходимые сведения

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

Слайд 22

Пример структуры программы директивы препроцессора описания int main(){ операторы главной функции

Пример структуры программы

директивы препроцессора
описания
int main(){
операторы главной функции
}
int f1(){
операторы функции f1
}
int f2(){
операторы

функции f2
}
Слайд 23

Программа может состоять из нескольких модулей (исходных файлов).

Программа может состоять из нескольких модулей
(исходных файлов).

Слайд 24

Замечания о вводе/выводе В языке C++ нет встроенных средств ввода/вывода ввод/вывод

Замечания о вводе/выводе

В языке C++ нет встроенных средств ввода/вывода

ввод/вывод осуществляется

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

Используется два способа:

функции, унаследованные из языка С,
объекты C++.

Слайд 25

ввод/вывод в стиле С Основные функции ввода/вывода в стиле С: int

ввод/вывод в стиле С

Основные функции ввода/вывода в стиле С:

int scanf (const

char* format, ... ) // ввод
int printf(const char* format, ... ) // вывод

Данные функции выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата format.

Строка формата содержит:
символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе,
спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами.

Слайд 26

ввод/вывод в стиле С Пример программы, использующей функции ввода/вывода в стиле

ввод/вывод в стиле С

Пример программы, использующей функции ввода/вывода в стиле С:

#include


int main(){
int i;
printf("Введите целое число\n");
scanf("%d", &i);
printf("Вы ввели число %d, спасибо!", i);
return 0;
}
Слайд 27

ввод/вывод в стиле С

ввод/вывод в стиле С

Слайд 28

ввод/вывод в стиле С

ввод/вывод в стиле С

Слайд 29

ввод/вывод в стиле С++ А вот как выглядит та же программа

ввод/вывод в стиле С++

А вот как выглядит та же программа с

использованием библиотеки классов C++:

#include
int main(){
int i;
cout << "Введите целое число\n";
cin >> i;
cout << "Вы ввели число " << i << ", спасибо!";
return 0;
}

Слайд 30

ввод/вывод в стиле С++ Заголовочный файл содержит описание набора классов для

ввод/вывод в стиле С++

Заголовочный файл содержит описание набора классов для

управления вводом/выводом.

В нем определены стандартные объекты-потоки:
cin для ввода с клавиатуры
cout для вывода на экран
а также операции:
помещения в поток <<
чтения из потока >>

В дальнейшем изложении будут использоваться оба способа

но в одной программе смешивать их не рекомендуется

Слайд 31

Модификаторы формата Модификаторы формата применяются для управления шириной поля, отводимого для

Модификаторы формата

Модификаторы формата применяются для управления шириной поля, отводимого для размещения

значения.

Модификаторы — это одно или два числа

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

Слайд 32

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

Модификаторы формата

Если указанного количества позиций для размещения значения недостаточно, автоматически выделяется

большее количество позиций:

%-minC или %minC;
%-minC.precisionC или %min.precisionC.

Слайд 33

Модификатор precision при выводе строки спецификация %s — precision указывает максимальное

Модификатор precision

при выводе строки

спецификация %s — precision указывает максимальное число

символов для вывода

при выводе вещественного числа

спецификации %f или %е — precision указывает количество цифр после десятичной точки
спецификации %d или %G — precision указывает максимальное количество значащих цифр, которые будут выводится

при выводе целого числа

спецификации %d или %i — precision указывает минимальное количество выводимых цифр
если число представляется меньшим числом цифр, чем указано в precision, выводятся ведущие (начальные) нули

Слайд 34

Модификаторы формата Перед спецификацией могут использоваться префиксы l и h например,

Модификаторы формата

Перед спецификацией могут использоваться префиксы l и h

например, %lf, %hu

h

с

типами d, i, о, х, X указывает на то, что тип аргумента short int
с типом u — short unsigned int

l

с типами d, i, о, х, X указывает на то, что тип аргумента long int
с типом u - long unsigned int
с типами е, Е, f, g, G — что тип аргумента double, а не float

Слайд 35

Модификаторы формата

Модификаторы формата

Слайд 36

Модификаторы формата

Модификаторы формата

Слайд 37

Модификаторы формата Пример: #include int main(){ int int1 = 45, int2

Модификаторы формата

Пример:

#include
int main(){
int int1 = 45, int2 = 13;
float f

= 3.621;
double dbl =2.23;
char ch = 'z', *str = "ramambahari";
printf("int1 = %d| int2 = %3d| int2 = %-4d|\n", int1, int2, int2);
printf("int1 = %X| int2 = %3x| int2 = %4o|\n", int1, int2, int2);
printf("f = %f| f = %4.2f| f = %6.1f|\n", f, f, f);
printf("f = %g| f = %e| f = %+E|\n", f, f, f);
printf("dbl = %5.2lf| dbl = %e| dbl = %4.1G|\n", dbl, dbl, dbl);
printf("ch = %c| ch = %3c|\n", ch, ch);
printf("str = %14s|\nstr = %-14s|\nstr = %s|\n", str, str, str);
return 0;
}