ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.09.2024
Просмотров: 22
Скачиваний: 0
Якщо при визначенні початкове значення змінним не задається явним чином, то компілятор обнуляє глобальні і статичні змінні. Автоматичні змінні не ініціалізувалися..
Ім'я змінної має бути унікальним в своїй зоні дії.
Опис змінною може бути виконаний або як оголошення, або як визначення. Оголошення містить інформацію про клас пам'яті і типа змінної, визначення разом з цією інформацією дає вказівку виділити пам'ять. У прикладі extern int x; - оголошення, а останні – визначення.
Знаки операцій в Сі++
Знаки операцій забезпечують формування виразів. Вирази складаються з операндів, знаків операцій і дужок. Кожен операнд є, у свою чергу, вираженням або частным злучаємо вирази – константою або змінною.
Унарні операції
& |
здобуття адреси операнда |
* |
Звернення за адресою (разіменування) |
- |
унарний мінус, міняє знак арифметичного операнда |
~ |
порозрядне інвертування внутрішньої двійкової коди цілочисельного операнда (побітове заперечення) |
! |
логічне заперечення (НЕ). Як логічні значення використовується 0 - брехня і не 0 - істина, запереченням 0 буде 1, запереченням будь-якого ненульового числа буде 0. |
++ |
Збільшення на одиницю:
|
- - |
зменшення на одиницю: префіксна операція - зменшує операнд до його використання постфіксна операція зменшує операнд після його використання. |
sizeof |
обчислення розміру (у байтах) для об'єкту того типа, який має операнд має дві форми sizeof вираз sizeof (тип) Приклади: sizeof(float) //4 sizeof(1.0) //8, оскільки дійсні константи за умовчанням мають типа double
|
Бінарні операції.
Аддитивні:
+ |
бінарний плюс (складання арифметичних операндів) |
- |
бінарний мінус (віднімання арифметичних операндів) |
Мультиплікативні:
* |
множення операндів арифметичного типа |
/ |
ділення операндів арифметичного типа (якщо операнди цілочисельні, то виконується цілочисельне ділення) |
% |
здобуття залишку від ділення цілочисельних операндів |
Операції зрушення (визначені лише для цілочисельних операндів).
Формат вираження з операцією зрушення:
Операнд_лівий операція_ зрушення операнд_правий
<< |
зрушення вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються |
>> |
зрушення управо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда, розряди, що звільнилися, обнуляються, якщо операнд беззнакового типа і заповнюються знаковим розрядом, якщо – знакового |
Порозрядні операції:
& |
порозрядна кон'юнкція (И) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідні біти обоє операндов=1) |
| |
порозрядна диз'юнкція (АБО) бітових представлень значень цілочисельних операндів (біт =1, якщо відповідний біт один з операндов=1) |
^ |
що порозрядне виключає АБО бітових представлень значень цілочисельних операндів(біт =1, якщо відповідний біт лише одного з операндов=1) |
Операції порівняння: результатом є true( не 0) або false(0)
< |
менше, ніж |
> |
більше, ніж |
<= |
менше або рівно |
>= |
більше або рівно |
== |
Рівно |
!= |
не рівно |
Логічні бінарні операції:
&& |
кон'юнкція (І) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0) |
|| |
диз'юнкція (АБО) цілочисельних операндів або стосунків, цілочисельний результат брехня(0) або істина(не 0) |
Операції привласнення
=, +=, -=, += і так далі
Формат операції простого привласнення:
операнд1=операнд2
Ліводопустиме значення (L-значение) – виразу, яке адресує деяку ділянку пам'яті, тобто в нього можна занести значення. Ця назва сталася від операції привласнення, оскільки саме ліва частина операції привласнення визначає, в яку область пам'яті буде занесений результат операції. Змінна – це окремий випадок ліводопустиме вираження.
Умовна операція.
На відміну від унарних і бінарних операцій в ній використовується три операнди.
Вираз1 ? Вираз2 : Вираз3;
Першим обчислюється значення вираз1. Якщо воно достеменне, то обчислюється значення виразу2, яке стає результатом. Якщо при обчисленні виразу1 вийде 0, то як результат береться значення виразу3.
Наприклад:
x<0 ? -х : x ; //обчислюється абсолютне значення x.
Операція явного (перетворення) приведення типа.
Існує дві форми: канонічна і функціональна:
-
(ім’я_типа) операнд
-
ім’я_типа (операнд)
(int)a // канонічна форма
int(a) // функціональна форма
Вирази
З констант, змінних, роздільників і знаків операцій можна конструювати вирази. Кожне вираження є правилом обчислення нового значення.. Якщо вираження формує ціле або речове число, то воно називається арифметичним. Пара арифметичних виразів, об'єднана операцією порівняння, називається відношенням. Якщо відношення має ненульове значення, то воно – істинно, інакше – помилково.
Пріоритети операцій у виразах
Ранг |
Операції |
1 |
( ) [ ] -> . |
2 |
! ~ - ++ -- & * (тип) sizeof тип( ) |
3 |
* / % (мультиплікативні бінарні) |
|
+ - (аддитивні бінарні) |
5 |
<< >> (порозрядного зрушення) |
6 |
< > <= >= (стосунки) |
7 |
== != (стосунки) |
8 |
& (порозрядна кон'юнкція «І») |
9 |
^ (що порозрядне виключає «АБО») |
10 |
| (порозрядна диз'юнкція «АБО») |
11 |
&& (кон'юнкція «І») |
12 |
|| (диз'юнкція «АБО») |
13 |
?: (умовна операція) |
14 |
= *= /= %= -= &= ^= |= <<= >>= (операція привласнення) |
15 |
, (операція кома) |
Контрольні питання
-
З яких елементів складається природна мова? Що є аналогами цих елементів в С++?
-
Що таке лексема? Навести приклади лексем в мові С++.
-
Що таке ідентифікатор? Правила запису ідентифікаторів.
-
Що таке константа? Як константа обробляється компілятором?
-
Які типи констант існують в С++. Навести приклади констант різних типів.
-
До якого типа відносяться константи 192345, 0х56, 0хСВ, 016, 0.7865, .0045, ‘c’, “x”, one, “one”, 5, 5.?
-
Що таке тип даних?
-
Чим відрізняються типи даних: float і double, char і wchar_t, int і short int?
-
Чим відрізняються типи даних int і unsigned int?
-
Перерахувати всіх типів даних, які існують в C++. Скільки місця в пам'яті займають дані кожного типа?
-
На що впливає кількість пам'яті, що виділяється для даних певного типа?
-
Що таке змінна? Чим оголошення зміною відрізняється від її визначення? Навести приклади визначень і оголошень.
-
Що таке клас пам'яті? Які класи пам'яті існують в С++? Навести приклади оголошень і визначень змінних різних класів пам'яті.
-
Що таке вираження? З чого складається вираження?
-
Що таке операнд?
-
Які операції можна застосовувати до цілочисельних даних? До речових даних? До символьних даних?
-
Що таке відношення?
-
У якому випадку відношення вважається помилковим, а в якому – достеменним?
-
Які операції називаються унарними? Навести приклади.
-
Які операції називаються бінарними? Навести приклади.
-
Що таке тернарная операція? Навести приклад.
-
Яка різниця між постфіксною і префіксною операцією інкремента (декремента)?
-
Які операції привласнення існують в С++?
-
Навести приклади виразів, що містять операції привласнення, операції інкремента (декремента), аддитивні і мультиплікативні операції. Пояснити, як вони виконуватимуться.
-
Що таке леводопустимое значення? Навести приклад.
-
Чому дорівнюватиме значення виразів:
int z=x/y++; якщо int x=1, y=2;
int w=x%++y, якщо int x=1, y=2;
int a=++m+n++*sizeof(int); якщо int m=1, n=2;
float a=4*m/0.3*n; якщо float m=1.5; int n=5;
int ok=int(0.5*y) <short(x)++; якщо int x=10, y=3;