
- •Простые типы данных
- •Модификаторы
- •1. Запись целых констант
- •2. Запись вещественных констант
- •3. Запись символьных констант
- •1. Арифметические операции над данными целочисленных типов
- •Простые типы данных
- •Модификаторы
- •Операция присваивания
- •Простые типы данных
- •Модификаторы
- •Операция присваивания
- •Диапазоны значений простых типов данных для ibm pc
- •5. Структура программы. Функции.
- •2. Формальные параметры функций
- •3. Возвращаемые значения функций
- •2.2 Пример простой программы на языке Си.
- •Управляющие конструкции
- •Ветвления
- •Циклы while, do.. .While и for
- •Теоретичсекий зачет по операторам цикла
- •Графика
- •Указатели
- •Преобразование типов
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Задание:
- •Операции над указателями.
- •Структуры
- •Объединения
- •. Описания типов (typedef)
- •Поразрядные операции (bitwize)
Простые типы данных
Базовые числовые типы данных
В Си имеется небольшое количество простых типов данных, причем все они являются числовыми.
Целочисленные типы: char, int. Вещественные типы: float, double.
Модификаторы
Для образования типов, производных от простых, имеются модификаторы, которые (для числовых типов) бывают двух видов;
модификаторы знака и модификаторы размера. Модификаторы записываются перед названием типа.
Модификаторы знака: signed (знаковый), unsigned (беззнаковый).
Модификаторы размера: short, long.
. Описание переменных
Описание переменных в Си имеет вид:
<имя типа> <список переменных>;
int а, b, с ; Переменные можно инициализировать при описании. int а=1,Ь,с=2;
. Запись числовых констант
Запись целых констант
можно явно указать компилятору тип числовой константы. символами "U" и "L", которыми могут заканчиваться числовые константы. Так, запись 1U означает, что используется значение 1 типа unsigned int. Запись 1L обозначает единицу типа long, a 1UL ? единицу типа unsigned long.
Запись вещественных констант
Если в записи числовой константы имеется точка (1.5) или расширение (lE-l), то Си считает ее вещест. в записи может быть и то, и другое: 1.5Е+1 Вещ. константы по умолчанию имеют тип double.
Запись символьных констант
Символьные константы в Си заключаются в апострофы. (Строковые константызаключаются в двойные кавычки.) В большинстве реализации языка Си символьные константы имеют тип int. и их значение совпадает с кодом соответствующего символа. Спец. символьные константы: ' \п' ? переход на новую строку; '\t' ? горизонтальная табуляция; '\а' ? звуковой сигнал; '\" ' ? двойная кавычка.
. Операции над числовыми данными
Арифметические операции над данными целочисленных типов
+, -, *, / ( в Паскале div), % (взятие остатка, в Паскале mod), ++, -- >>,<<,&, | ,^,.
Битовые операции
& (and), | (or), ^ (хоr), ~ (not)
Арифметические операции над вещественными данными
+,-, *, /, ++, --
Операции отношения
>,>=,<,<=,==, !=
Логические операции
С логическими операциями, которых всего три (&&, | | , ! ), надо быть внимательными и не путать их с битовыми. Дело в том, что с точки зрения компилятора оба выражения: (а==1)&&(b>2) и (а==1)&(b>2) являются синтаксически правильными..
Операция присваивания
в Си присваивание именно операция, а не оператор, как в Паскале. операция присваивания вырабатывает значение, которое может исп. в выражениях. Пример:.Пусть нужно присвоить одно и то же значение нескольким переменным. В Паскале это : а:=1; b:=1; с:=1. В Си : a=b=c=l;. Пример: выражение а=а+b; можно переписать в виде a+=b;.
. Операция запятая (,)
Весьма специфическая операция "запятая" используется для связывания нескольких выражений в одно.
Операция приведения к типу (тип)
Операция приведения к типу является унарной префиксной операцией и записывается перед выражением, к которому она применяется. Сама операция имеет вид (тип). Для нашего примера это выглядит следующим образом:
float c;
int a=l,b=2;
с=(float)a/b;
Типы данных c++
Тип данных определяет:
- внутреннее представление данных в памяти компьютера;
- множество значений, которые могут принимтаь величины этого типа;
- операции и функции. Которые можно применять к величинам этого типа.
Все типы С++ можно разделить на основные и составные.(массивы, перечисления, функции, структуры, ссылки, указатели, объединения и классы)
Основные (стандартные)типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях:
Int (целый)
Char(символьный)
float(вещественный)
double(вещественный с двойной точностью).
Первые 2 типа называют целочисленными (целыми), последние 2-типами с плавающей точкой. Код, который формирует компилятор для обработки целых величин, отличается от кода для величин с плавающей точкой.
Существует 4 спецификатора типа, уточняющих внутреннее представление данных и диапазон значений стандартных типов:
Short (короткий)
Long(длинный)
Signed(знаковый)
Unsigned(беззнаковый)
Целый тип int не определется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, а для 32 разрядного- 4.
Спецификатор short перед int указывает компилятору, что под это число надо отвести 2 байта независимо от разрядности процессора. Спецификатор long означает, что целая величина будет занимтаь 4 байта. Таким образом, на 16-разрядном процессоре Int и short int эквивалентны, а на 32-int и long int,
Внутренее представление величины целого типа- целое число в двоичном представлении. При использовании спецификатора sinhed старший бит числа интерпретируется как знаковый (0-положиоеьное число,1- отрицательное). Спецификатор unsigned позволяет представлять только положительные числа, поскольку старший разряд кода числа рассматривается как часть кода числа. Таким образом, диапазлн значений те завичит от спецификаторов.
По умолчанию все целочисленные типы считаются знаковыми.
Константам, встречающимся в прграмме, приписывается тот или иной тип в соответствии с их видом. Также можно явнно указать тип с помощью суффиксов L,l (long),U,u(unsigned). Например, константа 32L будет иметь тип long и занимать 4 байта.
Типы short int, long int, signed int, unsigned int можно сокращать до short,long,signed и unsigned соответственно.
Символьный тип char
Под величину символьного типа отводится количество байт, достаточное для рпзмешений любого символа или набора символов. Как правило, это 1 байт. Тип char может быть со знаком или без знака. В величинах со знаком можно хранить значения от -128 до 127. При использовани спецификатора unsigned значения могут находиться в пределах от 0 до 255. Это достаточно для хранения любого символа из 256- символьного набора данных ASCIIю Величины типа Char могут испрользоваться для хранения целых чисел, не превышабщих указанных диапазонов.
Типы с плавающей точкой float и double
Стандарт c++ определяет 3 типа данных для хранения вещественных значений: float,double и long double.
Внутренне представление вещественного числа систоит из 2-х частей- мантиссы и порядка. На IBM Pc величины Float занимают 4 байта, из которых 1 лвоичный ращзряд отводится под знак мантиссы, 8 разрядов под порядок и 23 под мантиссу. Мантисса – эир число, большее 1, но меньшее 2. Поскольку старшая цир\фра мантиссы всегда 1, она не хранится.
Для величин типа double, занимающих 8 байт, под порядок и мантиссу отводится 11 и 52 разряда соответственно. Длина мантиссы определяет точность числа, а длина порядка- его диапазон. При одинаковом количестве байт, отводимом под величины типа float и long int, диапазоны их допустимых значений сильно различаются из-за внутренней формы представлния.
Константы с плавающей точкой по умолчанию идут double. Можно явно указать тип константы с помощью суффикмсво F,f(float),L,l(long).