| рtr1 ptr2 | |
| ptr1> = ptr2 | Порівняння на "більше або дорівнює" |
| ptr1 - ptr2 | Обчислення числа елементів масиву між ptr1 і ptr2. |
| ptr1 + int_val | Обчислення покажчика, віддаленого від ptr1на |
| | Int_val "вгору" |
| ptr1 - int_val | Обчислення покажчика, віддаленого від ptr1 на int_val |
| | "Вниз" |
| ptr1 + + (+ + ptr1) | Збільшення значення вказівника на одиницю |
| ptr1 - (- ptr1) | Зменшення значення вказівника на одиницю | p> Арифметичні операції
| Операція | Опис |
| + | Додає величину, що знаходиться праворуч, до величини, що стоїть |
| | Зліва |
| + + | Унарний операція додавання. Додає 1 до значення змінної, |
| | Що стоїть ліворуч (постфіксная форма) або праворуч (префіксная форма) |
| - | Унарний операція віднімання. Вона аналогічна операції + +, але |
| | Віднімає 1.Также має дві форми |
| - | Вираховує величину, що знаходиться праворуч, з величини, зазначеної |
| | Зліва |
| - | Унарний мінус. Змінює знак величини, що стоїть справа |
| * | Множимо величину праворуч на величину, що знаходиться зліва |
|/| Ділить величину, що стоїть ліворуч, на величину справа. Якщо обидва |
| | Операнда цілі числа, то результат усікається |
|% | Дає залишок від ділення величини ліворуч на величину, що стоїть |
| | Справа, дозволений тільки для цілих чисел. | p>
Операції відносини
| Операція | Опис | Операція | Опис |
| <| Менше |> = | Більше або дорівнює |
| | Більше |
| == | Так само |! = | Не одно | p>
Логічні операції
| Операція | Опис |
| & & | Логічне множення (операція І). Результат дорівнює "1" тоді |
| | І тільки тоді, коли обидва операнда відмінні від нуля, і |
| | "О" в іншому випадку. |
| | | | Логічне додавання (операція АБО). Результат дорівнює "1", якщо |
| | Хоча б один з операндів відмінний від нуля, і "О" в |
| | Іншому випадку. |
| I | Логічне заперечення (операція НЕ). Результат має значення |
| | "Істина", якщо операнд має значення "брехня", і навпаки. | p>
Операції зсуву
| Операція | Опис |
|> | Зрушує розряди лівого операнда вправо на число позицій, |
| | Що задається правим операндом. Розряди, зрушуваної за молодший |
| | Розряд лівого операнда, втрачаються. Для чисел типу unsigned |
| | Позиції, що звільняються ліворуч, заповнюються нулями. Для чисел з |
| | Знаком заповнення залежить від реалізації, а в Visual C + + |
| | Заповнення здійснюється нулями | p>
Операції присвоювання p>
| Операція | Опис |
| + = | Додає величину, що знаходиться праворуч, до величини, що стоїть |
| | Ліворуч, і записує результат в змінну, що стоїть ліворуч |
| -= | Вираховує величину, що знаходиться праворуч, з величини, зазначеної |
| | Ліворуч, і записує результат в змінну, що стоїть ліворуч |
| *= | Множимо величину праворуч на величину, що знаходиться ліворуч, та |
| | Записує результат в змінну, що стоїть ліворуч |
|/= | Ділить величину, що стоїть ліворуч, на величину праворуч, і записує |
| | Результат в змінну, що стоїть ліворуч, якщо обидва операнда - цілі |
| | Числа, то результат усікається |
|% = | Дає залишок від ділення величини ліворуч на величину, що стоїть |
| | Справа, і записує результат в змінну, що стоїть ліворуч. |
| | Допустима тільки для цілих чисел |
| & = | Виконує порозрядної операцію І над величинами і записує |
| | Результат в змінну, що стоїть ліворуч |
| | = | Виконує порозрядної операцію АБО над величинами і записує |
| | Результат в змінну, що стоїть ліворуч |
| ^ = | Виконує порозрядної операцію, що виключає АБО над величинами, |
| | І записує результат в змінну, що стоїть ліворуч |
| = | Зрушує розряди лівого операнда вправо на число позицій, |
| | Що задається правим операндом, і записує результат в |
| | Змінну, що стоїть ліворуч | p>
Операції над покажчиками
| Операція | Опис | Приклад |
| & | Операція отримання |// присвоюємо значення |
| | Адреси-видає адреса | змінної nVariable = |
| | Змінної, ім'я якої | 77; |
| | Стоїть за - позначенням |// в ptr - адреса |
| | Операції | змінної |
| | | Ptr = &nVariable; |
| * | Непряма адресація - ви |/* змінної nVaiue |
| | Дає значення, | присвоюємо значення |
| | Що зберігається за адресою, на | змінної nVariable, |
| | Який посилається | використовуючи непряму |
| | Покажчик | адресацію */|
| | | NVaiue = * ptr; | p>
Операції над структурами та об'єднаннями p>
| Операція | Опис | Приклад |
| (точка) | Операція Приладдя, |/* name - ім'я структури, a |
| | Що використовується спільно з ім'ям | member - елемент, |
| | Структури (об'єднання) для | зазначений у шаблоні. Тоді |
| | Завдання компоненту цієї структури | цей елемент структури |
| | | Визначається наступним |
| | | Чином */name. member |
| | | (Об'єднання) |
| -> | Непряма адресація (визначення |/* ptrName - покажчик на |
| | Приналежності) елемента | структуру, a member - |
| | Використовується спільно з | елемент, зазначений у |
| | Покажчиком на структуру | шаблоні. |
| | (Об'єднання) для ідентифікації | Тоді цей елемент |
| | Деякого компонента цієї | структури визначається |
| | Структури (об'єднання) | наступним чином */|
| | | PtrName-> member | p>
Додаткові операції
| Операція | Опис | Приклад |
| 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); |
| | | (|
| | |// Тіло циклу |
| | |) | P>
Пріоритет виконання операції p>
| Операції (від вищого пріоритету до нижчого) | Порядок виконання |
| () () ->. (точка) | зліва направо |
|! ~ + + - - (Тип) * & sizeof (усі | справа наліво |
| унарні) | |
| * /% | Зліва направо |
| + - |---- "----- |
|> |---- "----- |
| <> = |---- "----- |
| ==! = |---- "----- |
| & |---- "----- |
| ^ |---- "----- |
| | |---- "----- |
| & & |---- "----- |
| | | |---- "----- |
|?: |---- "----- |
| = + = -= *=/=% = | Справа наліво |
|, (Кома) | Зліва направо | p>
Попереднє визначення макроси
| Макрос | Коментар |
| _date_ | Дата компіляції поточного вихідного файлу, представлена у вигляді |
| | Рядковий константи у форматі Mmm dd yyyy (місяць день рік) |
| _file_ | Строкова константа, що є ім'ям поточного вихідного файлу |
| _line_ | Десяткова ціла константа, що представляє поточний номер рядка |
| | Вихідного тексту |
| _stdc_ | Рівність 1 показує повну сумісність зі стандартом ANSI |
| | З; в іншому випадку не визначено |
| _TIME_ | Строкова константа, що представляє час початку обробки |
| | Поточного вихідного файлу у форматі hh: mm: ss |
| | (Години: хвилини: секунди) |
| _timestamp | Строкова константа, що представляє дату і час останньої. |
| _ | Модифікації поточного вихідного файлу у форматі Ddd Mmm Date |
| | Hh: mm: ss yyyy (абревіатура дня тижня місяць число години: хвилини: |
| | Секунди рік) | p>
Угорська нотація
| Префікс | Назва |
| 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 (Вікно) | p>
Директиви препроцесора p>
| Директива | Коментар |
| define ідентифікатор | Використовується для заміни часто використовуваних в |
| # define ідентифікатор | програмі констант, ключових слів, операторів та |
| текст | виразів змістовними ідентифікаторами |
| # define ідентифікатор | |
| (список, параметрів) текст | |
| # undef ідентифікатор | Відміняє поточне визначення ідентифікатора |
| # defined ідентифікатор | Ця операція дає істинне (не дорівнює 0) |
| # defined (ідентифікатор) | значення, якщо заданий ідентифікатор в даний |
| | Момент визначений |
| # 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) |
| | Наказує компілятору не видавати |
| | Попередження при розбіжності типів даних | p>
Операції препроцесора p>
| Операція | Коментар |
| # - Операція | Використовується перед параметром макросу, і наказує |
| підстановки рядка | замість значення цього параметра підставляти його ім'я |
| # # - Операція | Об'єднує лексеми і, видаляючи всі прогалини, утворює |
| конкантенаціі | нове ім'я. Одне з застосувань цієї операції полягає |
| | У динамічному створення імен змінних і |
| | Макроозначень. У макровизначеннями ця операція |
| | Обробляється після підстановки параметрів макросу |
| # @ - Операція | Розглядає фактичний параметр як окремий |
| підстановки символу | символ, укладений в поодинокі лапки | p>
p>