Константы могут использоваться в тексте любых операторов и выражений. Существует 4 типа констант:
Целые;
С плавающей запятой;
Символьные;
Перечисления.
Если две строковые константы разделены в тексте пробелами, они склеиваются в одну строку.
Перенос длинной строки (строковая константа) в тексте модуля можно осуществлять с помощью символа - \. Если в тексте константы должен быть включен символ \, то он удваивается - \\.
Константы перечисляемого типа объявляются следующим образом:
Enum имя{значение}
Enum color {red, blue}
В С++ имеется ряд предопределенных констант, основные из которых: true, False, null.
Const тип константы значение;
Const float Pi=3.14.
ТИПЫ ДАННЫХ.
Классификация типов данных, объявления типов:
4 группы типов данных:
1) Агрегатный – структура данных:
Array (массивы)
Struct (структуры)
Union (объединения)
Class (классы)
2) Функции (function)
3) Скалярные типы (Scalar):
Arithmetic
Enumeration (перечисления)
Pointer (указатели)
Reference (ссылки)
4) Void – отсутствие значения.
Другой способ классификации типов связан с их разбиением на основные и производные типы.
К основным типам относят: void, char, int, double и их модификации short, long, signed, unsigned.
Тип
Размер памяти в байтах
Диапазон значений
char
от -128 до 127
int
Для IBM XT,AT,SX,DX 2
short
от -32768 до 32767
long
от -2 147 483 648 до 2 147 483 647
unsigned shar
oт 0 до 255
unsigned int
Для IBM XT,AT,SX,DX 2
unsigned short
от 0 до 65535
unsigned long
от 0 до 4 294 967 295
Тип данных указывается при объявлении любых переменных и функции.
Синтаксис объявления типа:
Typedef определение типа, идентификатор.
Пример:
Объявляет тип пользователя Ar, как массив из 10 чисел, в дальнейшем на этот тип можно ссылаться при объявлении переменных.
Typedef double Ar [10]
Ar A = {1,2,3,4,5,6,7,8,9,10}
Арифметические типы данных:
Это целые и действительные типы. Целые: char, Short, int, long и их модификации.
Действительные: float, double.
Типы строк. Массивы символов:
В С++ нет специального типа строк. Строки рассматриваются как массивы символов, оканчивающиеся нулевым символом (‘\0’).
Строка доступна через указатель на первый символ в строке. Значением строки является адрес ее первого символа.
Строка может быть объявлена либо как массив символов, либо как переменная типа:
Char S[] = “строка”; = char * Sp = “строка”
Первое объявление создает массив из 7 элементов S, содержащих значение ‘c’, ‘т’, ‘р’, ‘о’, ‘к’, ‘а’, и ‘\0’,
Второе объявление создает переменную указатель Sp, который указывает на строку с текстом «строка», лежащую где-то в памяти. Доступ к отдельным символам строки осуществляется по индексу, начинающемуся с 0.
S[0] = ‘c’
Sp[1]=’т’
Если размер массива не указан, длина строки определяется компилятором автоматически.
Можно объявлять строковые переменные заданной длины.
Char buff [100]
Объявляет переменную buff, которая может содержать строку до 99 значащих символов.
Библиотечные функции для обработки строк.
Strcat - конкатенация
Strcmp – сравнение двух строк
Strcpy – копирование одной строки в другую
StrStr –поиск в строке заданной подстроки
Strlen – определение длинны строки
Ищет в строке к которой она применена (S1) первое вхождение подстроки заданной ее параметром S2. Если поиск успешный функция возвращает индекс первого символа, найденного вхождения подстроки.
Индексы начинаются с 1.
Пример:
S1 = «Папа»
S2 = «а»
Int i = S1.Pos(S2)
i = 2
SubString (I,K).
Возвращает подстроку, начинающуюся с символа позиции заданного параметра I, и содержащую число символов, не превышающее значение, заданное параметром K.
AnsiString str = S1. SubString (I, K)
Если I = 2, K = 1, То Str = «а»
Если I = 2, K = 2, То Str = «ап»
Length ()
Без параметров. Функция возвращает число символов в строке.
Int l = S1. Length()
Массивы.
Одномерные массивы.
Int a[10]
Массив из 10 чисе.
К каждому элементу можно обратиться по индексу. Индекс массива начинается с 0.
Двумерные массивы.
Int a [10][9];
Массив из 10 строк и 9 столбцов.
Индексируются с 0.
Количество элементов в массиве: Sizeof – возвращает объем памяти, отведенной под переменную.
Sizeof(a)/ Sizeof(a[0])
Указатели.
Переменная, значение которой равно значению адреса в памяти, по которой лежит значение некоторой другой переменной.
В этом смысле имя другой переменной отсылает к ее значению прямо, а указатель косвенно.
Ссылка на значение посредством указателя называется косвенной адресацией. Указатели должны быть объявлены.
Пример: Int y=5
Int *yPtr; x; - определяет переменнуюyPtr, как указатель на целое число, а переменную х – просто как целое число.
Указатель *
Для присваиванию указатель адреса некоторой переменной используется операция адресации.
yPtr = &y;
& - возвращает адрес своего операнда (у)
Для того, чтобы получить значение на которое указывает указатель используется операция косвенной адресации. x = * yPtr
В х будет занесено то, что лежит в ячейке памяти, адрес которой хранится yPtr.
Пример: это значение = 5
ССЫЛКИ.
Следующий тип указателя, который позволяет работать с указателем как с объектом.
Объявление с помощью &.
Пример: Пусть в программе имеется указатель на объект какого-то типа