Лекции по проге / 01_Структура программы, типы данных (3)
.pdf
Активная часть языка: действия
Оператор (statement) – это законченное действие на языке программирования
Сложные операторы могут включать в себя другие операторы
Примитивные операторы в языке Си завершаются точкой с запятой ;
11
Разновидности операторов
Оператор вычисления выражения, например, a = b + 1;
Пустой оператор: ;
Управляющий оператор, например,
if(a |
> b) { |
min |
= |
b; |
} |
12 else |
{ |
min |
= |
a; |
} |
Разновидности операторов
Составной оператор - два или более операторов, объединенных с помощью фигурных скобок {}, например,
{
tmp = a; a = b;
b = a;
}
Синтаксически составной оператор воспринимается как единичный оператор и может использоваться в любых конструкциях, где синтаксис требует одного
13 оператора
Пассивная часть языка: данные. Понятие типа данных
Тип данных задает множество возможных значений, которые могут принимать переменные (и другие объекты) этого типа, а также определяет набор разрешенных операций для переменных (объектов) этого типа
Понятие типа применимо к переменным, константам и результатам выражений
Использование операций с неразрешенными типами данных приведет к ошибке компиляции невозможно
преобразовать ... в ... (can not convert ... to 14 ...)
Система типов данных в языке Си
Типы данных
|
|
Простые (скалярные) |
|
Структурированные |
Указатели |
Тип |
|
|
типыданных |
|
типыданных |
void |
|
|
|
|
|
|||
Арифметические |
Арифметические |
Перечис- |
|
Объеди- |
|
|
целочисленные |
типыс плавающей |
Массивы Структуры |
|
|||
лимый тип |
нения |
|
||||
|
типы |
точкой |
|
|
||
|
|
|
|
|
||
Знаковые |
Беззнаковые |
|
|
|
Встроенные типы |
|
|
|
|
данных |
|
||
|
|
|
|
|
|
|
char |
unsigned char |
float |
|
|
|
|
short int |
unsigned short int |
double |
|
|
Типыданных, |
|
int |
unsigned int |
long double |
|
|
определяемые |
|
15 long int |
unsigned long int |
|
|
|
пользователем |
|
|
|
|
|
|
||
Арифметические типы данных
|
|
|
|
Тип |
Диапазон |
Размер |
|
char |
-128...127 (-27...27-1) |
1 |
байт |
unsigned char |
0...255 (0...28) |
1 |
байт |
short int |
-32768…32767(-215...215-1) |
2 |
байта |
unsigned short int |
0…65535 (0...216) |
2 |
байта |
int |
зависит от операционной системы, |
|
|
|
в Win32 аналогичен long int |
|
|
long int |
-2147483648…2147483647 |
4 |
байта |
|
(-231...231-1) |
||
unsigned long int |
0…4294967295 (0...232) |
4 |
байта |
float |
±3,4*10±38, 7 значащих цифр |
4 |
байта |
double |
±1,7*10±308, 15 значащих цифр |
8 |
байт |
long double |
идентичен double |
|
|
16
Константы
Константами называют неизменяемые величины определенного типа, упоминаемые в тексте программы
Например:
10, 0xA0, 3.14159, 1.45E-4, 'a', "Hello"
17
Целые константы
Тип данных: int
Формат |
Примеры |
Десятичный - последовательность цифр, не |
|
начинающаяся с нуля, если это число не |
10, 16, 255 |
нуль |
|
Восьмеричный - последовательность цифр |
012, 020, |
0-7, начинающаяся с нуля |
0377 |
Шестнадцатеричный - последовательность |
0xA, 0x10, |
цифр и букв A-F, начинающаяся с 0x |
0xFF |
18
Представление логических значений: ИСТИНА, ЛОЖЬ
Любое целое значение, отличное от нуля, считается истиной
Целое значение, равное нулю, считается ложью
19
Вещественные константы
Тип данных: double
Формат |
Примеры |
|
Десятичный: |
5.7, .009, 34. |
|
[<цифры>].[<цифры>] |
||
|
||
Экспоненциальный: |
.057E2, 9e-3, |
|
[<цифры>].[<цифры>]{E|e}[+|-][<цифры>] |
3.4E1 |
Константа 3.4E1 означает 3.4*101. Число 3.4 называют мантиссой, а 1 — порядком.
Чтобы придать целой константе вещественный тип 20 необходимо записать ее как 2f или 2.0
