
- •1 Основні елементи мови с
- •1.1 Алфавіт мови програмування
- •1.2 Лексеми
- •1.3 Ключові слова
- •1.4 Ідентифікатори
- •1.5 Класифікація типів даних
- •1.6 Літерали
- •1.7 Оператори
- •1.8 Коментарі
- •1.9 Директиви препроцесора
- •1.10 Організація програми
- •2 Операції та вирази
- •2.1 Загальні відомості
- •2.2 Арифметичні операції
- •2.3 Операції приведення типів
- •2.4 Операції присвоєння
- •2.5 Операції інкремента і декремента
- •2.6 Операції порівняння
- •2.7 Операції зсуву
- •2.8 Порозрядні операції
- •2.9 Логічні операції
- •2.10 Операція sizeof
- •2.11 Операція послідовного обчислення
- •2.12 Операція умови (?:)
- •2.13 Адресні операції
- •3 Прості типи даних
- •3.1 Оголошення змінних
- •3.2 Час існування та область видимості змінних
- •3.3 Цілі типи даних
- •3.4 Дійсні типи даних
- •4 Оператори керування
- •4.1 Оператор розгалуження if
- •4.2 Оператор розгалуження if-else
- •4.3 Оператор множинного розгалуження switch
- •4.4 Оператор циклу for
- •4.5 Оператор циклу while
- •4.6 Оператор циклу do while
- •4.7 Оператор break
- •4.8 Оператор continue
- •5 Функції
- •5.1 Основні поняття
- •5.2 Види виклику функцій
- •5.3 Область видимості
- •5.4 Порожній тип void
- •5.5 Передача аргументів у функцію
- •5.6 Рекурсивні функції
- •5.7 Прототипи функцій
- •6 Покажчики
- •6.1 Визначення та ініціалізація покажчиків
- •6.2 Визначення покажчиків
- •6.3 Масиви
- •6.4 Операції порівняння
- •6.5 Копіювання рядка
- •6.6 Покажчики на функцію
- •6.7 Покажчики на void
- •6.8 Арифметика покажчиків
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •7.3 Багатовимірні масиви
- •8 Рядки в с
- •8.1 Рядки
- •8.2.Створення рядків
- •8.3 Прототипи
- •8.3 Функції перетворення буферів
- •8.4 Функції перевірки літер
- •8.5 Операції з рядками
- •9 Структури, об’єднання, перерахування
- •9.1 Структури
- •9.2 Бітові поля
- •9.3 Ключове слово typedef
- •9.4 Об’єднання
- •9.5 Перераховуваний тип
- •10 Введення та виведення даних
- •10.1 Функція виведення printf
- •10.2Функція введення scanf
- •10.3 Введення та виведення у файл
- •11 Динамічне виділення пам'яті
3.3 Цілі типи даних
Тип даних int призначений для відображення цілих чисел. Розмір пам’яті який виділяється для змінної типу int визначений як правило розміром машинного слова, для більшості сучасних ПК це 32 біта (4 байта). Приклади літералів цілих чисел – 1, 2, 10, 101. При використанні 4-х байт для зберігання цілих чисел діапазон їх представлення – від мінус 2147483648 до плюс 2147483647. Таким чином тип int може представляти 4294967294 цілих чисел, тобто 232.
Якщо є потреба оголосити змінну цілого типу потрібно використати ключове слово int.
Приклад 3.2. Оголошення однієї змінної типу int.
int numberOfStudent;
Приклад 3.3. Оголошення декількох змінних типу int.
int numberOfStudent, i, j;
Приклад 3.4. Оголошення та ініціалізація змінних типу int.
int numberOfStudent = 25, i = 0, j = 2;
Тип даних char призначений для зберігання одного ASCII символу. Розмір пам’яті який виділяється для змінної типу char визначений розміром таблиці ASCII символів і складає 1 байт. Приклади літералів символів – ‘a’, ‘d’, ‘4’, ‘R’, а також спеціальні символи такі як ‘\0’, ‘\n’. Під час компіляції літерали символів переводяться у відповідне, згідно таблиці ASCII, ціле значення. Наприклад, ‘A’ буде переведено у ціле число 65.
Коли потрібно ініціалізувати змінну типу char, це можна зробити двома способами, рекомендується застосовувати перший спосіб, другий вважається поганою програмістською практикою.
Приклад 3.5. Перший спосіб.
char letter1 = ‘a’;
Приклад 3.6. Другий спосіб.
char letter2 = 97; /* в таблиці ANSII 97 відповідає
символу ‘a’*/
Ще один вид літералів що мають бути згадані у зв'язку з char це стрічкові літерали (string literals). Стрічка це набір символів, і для її представлення використовуються подвійні кавички (“ ”), на відміну від символів які представляються у одинарних кавичках (‘ ’). Прикладом стрічкового літералу є “Hello World \n”, в прикладі першої програми на С.
Типи даних short int та long int на відміну від базового типу int дозволяють використовувати відповідно менше чи більше пам’яті для представлення даних. Так якщо для представлення цілого числа достатній діапазон значень від мінус 32768 до плюс 32767, то доцільно використати тип short int. Відповідно тип long int використовується у випадку, коли потрібний більший діапазон значень для представлення числа у порівнянні з типом int. Ключове слово int не обов’язкове при оголошенні змінних типів short int чи long int.
Як правило змінні типу short int займають в пам’яті 2 байти, int – 4 байти, long int – 4 чи 8 байт.
Для базових типів даних один біт використовується для представлення знаку числа. Якщо відомо, що змінна ніколи не буде приймати негативних значень, для її оголошення можна використати ключове слово unsigned, яке визначає тип, у якому біт, що у базових типах використовується для знаку буде використаний для збереження даних, збільшивши таким чином удвічі діапазон значень для представлення числа.
При оголошенні змінних типу unsigned int, unsigned short int та unsigned long int ключове слово int не є обов'язковим. На відміну від unsigned ключове слово signed вказує, що тип даних знаковий, але використання signed не є обов’язковим, так як усі базові типи даних по замовченню знакові.
Тип даних unsigned char використовується для представлення символів російського алфавіту, тому що коди російських букв перевищують величину 127.