- •2. Основні елементи мови с
- •3.1 Алфавіт мови програмування
- •3.2Лексеми
- •3.3Ключові слова
- •3.4Ідентифікатори
- •3.5 Класифікація типів даних
- •3.6 Літерали
- •3.7 Оператори
- •3.8 Коментарі
- •3.9 Директиви препроцесора
- •3.10 Організація програми
- •3. Операції та вирази
- •4.1 Загальні відомості
- •4.2 Арифметичні операції
- •4.3 Операції приведення типів
- •(Тип) ідентифікатор,
- •4.4 Операції присвоєння
- •4.5 Операції інкремента і декремента
- •4.6 Операції порівняння
- •4.7 Операції зсуву
- •4.8 Порозрядні операції
- •4.9 Логічні операції
- •4.10 Операція sizeof
- •Sizeof ( Вираз ),
- •4.11 Операція послідовного обчислення
- •4.12 Операція умови (?:)
- •Операнд-1 ? Операнд-2 : Операнд-3
- •4.13 Адресні операції
- •Тип * ім'я_покажчика;
- •4. Прості типи даних
- •5.1 Оголошення змінних
- •[ Модифікатори ] тип ім’я_змінної;
- •5.2 Час існування та область видимості змінних
- •5.3 Цілі типи даних
- •5.4 Дійсні типи даних
- •5. Оператори керування
- •5.1 Оператор розгалуження if
- •If ( Вираз ) true-оператор;
- •5.2 Оператор розгалуження if-else
- •If ( Вираз ) true-оператор; else false-оператор;
- •5.3 Оператор множинного розгалуження switch
- •5.4 Оператор циклу for
- •For ( Вираз 1 ; Вираз 2 ; Вираз 3 ) тіло циклу
- •5.5 Оператор циклу while
- •While ( Вираз ) тіло циклу
- •5.6 Оператор циклу do while
- •Тіло циклу while ( Вираз ) ;
- •5.7 Оператор break
- •5.8 Оператор continue
- •6 Введення та виведення даних
- •7.1 Функція виведення printf
- •Int printf( стрічка форматування, змінна1, змінна2, ... );
- •7.2Функція введення scanf
- •Int scanf (стрічка форматування, адреса змінної1, адреса змінної2, ... );
- •9.1 Введення та виведення у файл
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •Тип даних ім’я змінної [n];
- •7.3 Багатовимірні масиви
- •6. Функції
- •6.1 Основні поняття
- •{Тіло функції}
- •6.2 Область видимості
- •6.3 Порожній тип void
- •6.4 Передача аргументів у функцію
- •6.5 Рекурсивні функції
- •6.6 Прототипи функцій
- •8. Рядки в с
- •4.1 Прототипи
- •4.2 Функції перетворення буферів
- •4.3 Функції перевірки літер
- •4.4 Рядок символів
- •4.5 Операції з рядками:
- •4.6 Символьні константи
- •9. Покажчики
- •5.1 Визначення та ініціалізація покажчиків
- •5.2 Визначення покажчиків:
- •5.3 Масиви
- •5.6 Копіювання рядка
- •5.7 Посилання та оператор &
- •5.9 Посилання в якості результатів функції
- •5.10 Покажчики на функцію
- •Тип_функціі (* імя_покажчика) (специфікація_параметрів);
- •5.11 Покажчики на void
- •5.12 Арифметика покажчиків
- •10. Структури, об’єднання, перерахування
- •7.1 Структури
- •7.2 Ключове слово typedef
- •7.3 Об’єднання
- •7.4Перераховуваний тип (Enum)
- •Enum dataType
- •Enum day
- •11 Динамічне виділення пам'яті
4.10 Операція sizeof
За допомогою операції sizeof можна визначити розмір пам'яті, яка відповідає ідентифікатору чи типу. Операція sizeof має наступний формат:
Sizeof ( Вираз ),
де у якості виразу може бути використаний ідентифікатор або ім'я типу.
Застосування операції sizeofдо імені типу або до ідентифікатора, що має тип структури чи об'єднання, приводить до видачі фактичного розміру, що може включати ділянки пам'яті, які використовуються для вирівнювання елементів структури або об'єднання.
Приклад 15 .Операціїsizeof
int a = 2;
float b = 4;
double c = 6;
printf(“%i %i %i\n”, sizeof(a), sizeof(b), sizeof(c));
/* На екрані побачимо: 4 4 8, кількість байт які в пам’яті займають змінні a b та c */
printf(“%i %i\n”, sizeof(int), sizeof(double));
/* На екрані побачимо: 4 8, кількість байт які відповідають типам int та double */
4.11 Операція послідовного обчислення
Операція «,» –операція послідовного обчислення для двох чи більш виразів там, де за синтаксисом припустимий тільки один вираз. Обчислення виконуються зліва на право. При виконанні операції послідовного обчислення перетворення типів не відбувається.
4.12 Операція умови (?:)
У мові С присутня одна тернарна операція – умовна операція, що має наступний формат:
Операнд-1 ? Операнд-2 : Операнд-3
Операнд-1 повинний бути цілого чи дійсного типу чи бути покажчиком. Він оцінюється з погляду його рівності 0. Якщо Операнд-1 не дорівнює 0, то обчислюється Операнд-2 і його значення є результатом операції. Якщо Операнд-1 дорівнює 0, то обчислюється Операнд-3 і його значення є результатом операції. Слід зазначити, що обчислюється або Операнд-2, або Операнд-3, але не обоє. Тип результату залежить від типів Операнда-2 і Операнда-3.
Приклад 16. Операція умови (?:)
int a=2, b=4, max;
max = (b<=a) ? a : b;
Результат виразу b<=aдорівнює нулю, тому зміннійmaxприсвоюється значення змінноїb.
4.13 Адресні операції
Існує дві адресні операції: (&) - взяття адреси та (*) - та звернення по адресі.
Якщо перед ім'ям змінної чи елементу масиву стоїть &, це значить взяття їх адреси.
Ці операції найбільш частіше використовуються при роботі з покажчиками. Забігаючи наперед, відмітимо, що покажчик- це змінна, яка може приймати значення адреси іншої змінної певного типу.
Покажчик вказує на певний тип і описується у вигляді:
Тип * ім'я_покажчика;
Приклад 17.Адресна операції: (*)
char *pch; /* Покажчик на тип char. */
int *pi; /* Покажчик на тип int. */
float *p1; /* Покажчик на float. */
Приклад 18. Адресна операції: (*)
double x=2.1, y, *p2; /* Опис змінних х, у типу double і
покажчику р2 на double. */
p2=&x; /* Покажчик р2 отримав значення адреси змінної х. */
y=*p2; /* Змінній у присвоєно значення іншої змінної,
адреса якої знаходиться в покажчику р2 . Тобто у=х;
*/
/* *р2 звернення по адресі, яка знаходиться в р2.*/
4. Прості типи даних
5.1 Оголошення змінних
Типи даних– це спеціальні конструкції мови, що розглядаються компілятором як зразки для створення таких елементів програми, як змінні, константи і функції. Будь-який тип визначає обсяг пам'яті, який виділяє компілятор для розміщення елемента; форму внутрішнього уявлення; множину допустимих значень, а також множину допустимих операцій, які програміст може виконувати над елементами даного типу.
Змінна– це іменована ділянка пам’яті, де зберігається значення, яке може бути змінено програмою. В мові С всі змінні, перед їх використанням повинні бути оголошені (declarate).
Під час оголошення змінної здійснюється виділення пам'яті. Оголошення задає ім'я змінної та її тип. Крім цього, може бути визначене початкове значення для змінної, таке визначення називають ініціалізацією (initialization). Повинно бути одне і тільки одне оголошення змінної в програмі.
Приклад 1. Синтаксис оголошення змінної