Типы данных языка С++ |
Вид переменной |
Ключевые слова |
Примечание |
Целые со знаком |
int long, long int short, short int |
Основной тип целых чисел
Длинное целое – могут иметь целое как минимум такого же размера, как самое большое int и, возмоно,больше
Короткое целое – могут иметь целое не больше самого маленького int а, возможно, и меньше.
|
Целые без знака |
unsigned, unsigned int unsigned long, unsigned int long
unsigned short,
unsigned int short |
Имеют только нулевые и положительные значения. Они не могут быть больше самого большого возможного положительного числа. Числа таких типов подчиняются законам арифметики по модулю 2". |
Символы |
Char unsigned char |
Это типографские знаки, такие как А, $, 7 или %, а также специальные Управляющие символы. |
Числа с плавающей точкой
|
Float
double,
long float
|
Числа с плавающей точкой обычной точности. Числа с плавающей точкой двойной точности. |
Целые константы |
Тип
|
Синтаксическое правило
|
Пример
|
Десятичный
|
Первая цифра 1-9, следующие цифры 0-9
|
77
-512
77385L
|
Шестнадцатеричный
|
Начинается с 0x или 0X; следующие цифры 0-9, a-f или A-F
|
0x4D
-0Х200
0x12e49
|
Восьмеричный |
Начинается с 0; следующие цифры 0-7
|
0115
-01000
017067 L
|
Операции над указателями |
Операция |
Комментарии |
ptr1= =ptr2 |
Сравнение на "равенство" |
ptr1 != ptr2
|
Сравнение на "неравенство" |
Ptr1 < ptr2 |
Сравнение на "меньше" |
рtr1 ptr2 |
Сравнение на "больше" |
ptr1>= ptr2 |
Сравнение на "больше или равно" |
ptr1 - ptr2 |
Вычисление числа элементов массива между ptr1 и ptr2. |
ptr1+ int_val |
Вычисление указателя, отстоящего от ptr1на int_val"вверх"
|
ptr1 - int_val |
Вычисление указателя, отстоящего от ptr1 на int_val "вниз" |
ptr1++ (++ptr1) |
Увеличение значения указателя на единицу |
ptr1-- (--ptr1) |
Уменьшение значения указателя на единицу |
Операция |
Описание |
+ |
Прибавляет величину, находящуюся справа, к величине, стоящей слева
|
++ |
Унарная операция сложения. Прибавляет 1 к значению переменной, стоящей слева (постфиксная форма) или справа (префиксная форма)
|
-- |
Унарная операция вычитания. Она аналогична операции ++, но вычитает 1.Также имеет две формы
|
- |
Вычитает величину, находящуюся справа, из величины, указанной слева
|
- |
Унарный минус. Изменяет знак величины, стоящей справа
|
* |
Умножает величину справа на величину, находящуюся слева |
/ |
Делит величину, стоящую слева, на величину справа. Если оба операнда целые числа, то результат усекается
|
% |
Дает остаток от деления величины слева на величину, стоящую справа, допустима только для целых чисел. |
Операция |
Описание |
+=
|
Прибавляет величину, находящуюся справа, к величине, стоящей слева, и записывает результат в переменную, стоящую слева
|
-=
|
Вычитает величину, находящуюся справа, из величины, указанной слева, и записывает результат в переменную, стоящую слева
|
*=
|
Умножает величину справа на величину, находящуюся слева, и записывает результат в переменную, стоящую слева
|
/=
|
Делит величину, стоящую слева, на величину справа, и записывает результат в переменную, стоящую слева, если оба операнда — целые числа, то результат усекается
|
%=
|
Дает остаток от деления величины слева на величину, стоящую справа, и записывает результат в переменную, стоящую слева. Допустима только для целых чисел
|
&=
|
Выполняет поразрядную операцию И над величинами и записывает результат в переменную, стоящую слева
|
|=
|
Выполняет поразрядную операцию ИЛИ над величинами и записывает результат в переменную, стоящую слева
|
^=
|
Выполняет поразрядную операцию, исключающее ИЛИ над величинами, и записывает результат в переменную, стоящую слева
|
=
|
Сдвигает разряды левого операнда вправо на число позиций, задаваемое правым операндом, и записывает результат в переменную, стоящую слева
|
Операция |
Описание |
Пример |
Sizeof |
Позволяет получить размер (в байтах) операнда, стоящего справа. Операндом может быть обозначение типа, заключенное в круглые скобки, либо имя конкретной переменной (как базового, так и сложного типа) |
sizeof (double) /* если structName - имя структуры, то следующий оператор возвратит ее размер */
sizeof structName |
(type) |
Операция приведения типа преобразует следующее за ней значение в тип, определенный ключевым словом (или словами), заключенным в круглые скобки |
/* следующая операция преобразует целое число 7 в число с плавающей точкой 7.0 */ (float)7 |
?: |
Операция условия имеет три операнда, каждый из которых является выражением, расположенным следующим образом:
выражение 1 ? выражение2: выражение З
Результат равен значению выражение 2, если выражение 1 истинно и значению выражение З, в противном случае. |
/* Результат операции равен большему из двух чисел а и б */ (а >b) ? а: b |
, (запятая) |
Операция "запятая" связывает два выражения в одно и гарантирует, что левое выражение будет вычислено первым
|
/* Наиболее часто используется в цикле for * / for(i=0, nStep=2; niter < 10; i+=nStep); { // тело цикла
} |
Макрос
|
Комментарий
|
_date_
|
Дата компиляции текущего исходного файла, представленная в виде строковой константы в формате Mmm dd yyyy (месяц день год)
|
_file_
|
Строковая константа, являющаяся именем текущего исходного файла
|
_line_
|
Десятичная целая константа, представляющая текущий номер строки исходного текста
|
_stdc_
|
Равенство 1 показывает полную совместимость со стандартом ANSI С; в противном случае не определен
|
_TIME_
|
Строковая константа, представляющая время начала обработки текущего исходного файла в формате hh:mm:ss (часы:минуты:секунды)
|
_timestamp_
|
Строковая константа, представляющая дату и время последней. Модификации текущего исходного файла в формате Ddd Mmm Date hh:mm:ss yyyy (аббревиатура дня недели месяц число часы: минуты: секунды год)
|
Префикс |
Имя |
a |
Array (Массив) |
с |
Character (Символ) |
d |
Date (Данные) |
dbl |
Double (Двойной) |
dc |
Device Context (Контекст устройства) |
dw |
Double Word (Двойное слово) |
f |
Flag, Boolean or Logical (Флаг, Булевское или Логическое) |
h |
Handle (Дескриптор) |
i |
Integer (Целое) |
inst |
Instance (Экземпляр, Копия) |
I |
Long (Длинное) |
li |
Long Integer (Длинное целое) |
Ip |
Long Pointer (Дальний указатель) |
msg |
Message (Сообщение) |
n |
Numeric (Цифровое) |
о |
Object (Объект) |
pal |
Palette (Палитра) |
psz |
Pointer to a Zero Terminated String (Указатель на строку с завершающим нулем) |
ptr |
Pointer (Указатель (или Р, когда использован с другими переменными, подобными psz)) |
r |
Real (Действительное, Вещественное) |
гс |
Rectangle (Прямоугольник) |
rgb |
Red, Green, Blue (Переменная цвета) |
rsrc |
Resource (Ресурс) |
sgl |
Single (Единственное) |
si |
Short Integer (Короткое целое) |
sz |
Zero Terminated String (Строка с завершающим нулем) |
u |
Unsigned (Без знаковое) |
ui |
Unsigned Integer or Byte (Без знаковое целое или Байт) |
w |
Word (Слово) |
wnd |
Window (Окно) |
Директива |
Комментарий |
define идентификатор #define идентификатор текст
#define идентификатор (список, параметров) текст
|
Используется для замены часто используемых в программе констант, ключевых слов, операторов и выражений содержательными идентификаторами |
#undef идентификатор |
Отменяет текущее определение идентификатора |
#defined идентификатор #defined (идентификатор) |
Эта операция дает истинное (не равное 0) значение, если заданный идентификатор в данный момент определен |
#include #include "путь" |
Включает содержимое файла, заданного именем путь, в текущий компилируемый исходный файл. Путь представляет собой имя файла, которому может предшествовать спецификация каталога. Если спецификация пути заключена в двойные кавычки, то препроцессор ищет файл в текущем (рабочем) каталоге, а в случае его отсутствия поиск переносится в стандартные каталоги поиска, которые задаются командой PATH операционной системы и установками интегрированной среды Visual C++. Если же спецификация пути заключена в угловые скобки, то поиск осуществляется в стандартных каталогах |
#if Константное_выражение |
Условная подстановка фрагмента текста в зависимости от значения константного выражения: фрагмент подставляется, если оно истинно. Конец условно подставляемого фрагмента обязательно должен быть отмечен директивой #endif
|
#endif |
Обозначает конец условно подставляемого фрагмента текста, начатого директивой #if |
#ifdef идентификатор #ifndef идентификатор
|
Условная подстановка фрагмента текста в зависимости от того, определен ли идентификатор |
#else |
Позволяет организовать альтернативную ветвь условной подстановки определенной директивой #if. Между директивами #if и ttendif разрешается использовать только одну директиву #else |
#elif константное_выражение |
Сокращение от "else if". Используется как альтернативный вариант при построении вложенных директив #if |
#line целая_константа "имя_файла" (необязательное) |
Используется при генерации сообщений периода компиляции и сообщает компилятору об изменении порядка нумерации строк и необязательном изменении имени файла |
#error текст |
Служит для прерывания компиляции, поиска ошибок и выдачи сообщения вида:Fatal: имя_файла номер_строки Error directive:Текст |
#pragma последовательность символов |
Определяет зависящие от реализации указания компилятору (прагмы). Компилятор Visual C++ поддерживает следующие прагмы: alloc text, comment, optimize, auto_inline, component, inline_depth, pack, bss seg, data_seg, function, intrinsic, setlocale, code_seg, hdrstop, message, const seg, once, warning, inline recursion, check_stack, include_alias Например,директива
#pragma warning(disable: 4305)
предписывает компилятору не выдавать предупреждения при несовпадении типов данных
|
Операция
|
Комментарий
|
# - операция подстановки строки
|
Используется перед параметром макроса, и предписывает вместо значения этого параметра подставлять его имя
|
## - операция конкантенации
|
Объединяет лексемы и, удаляя все пробелы, образует новое имя. Одно из применений этой операции заключается в динамическом создании имен переменных и макроопределений. В макроопределении эта операция обрабатывается после подстановки параметров макроса
|
#@— операция подстановки символа
|
Рассматривает фактический параметр как отдельный символ, заключенный в одиночные кавычки
|