type qualifiers storage classes c
Важливість кваліфікаторів типу та класів зберігання в C ++.
У цьому Ексклюзивна навчальна серія C ++ , ми продовжимо тему змінних далі і побачимо класифікатори типів та класи зберігання в C ++ у цьому підручнику. Хоча це невелика тема, вона є дуже важливою та значущою щодо програмування на C ++.
Класифікатори типів на C ++ не змінюють значення змінних або сутностей, з якими вони використовуються, а лише додають додаткову інформацію до сутності.
Що ви дізнаєтесь:
Введіть Кваліфікатори в C ++
Класифікатори типів у C ++ додають додаткові властивості до змінної, як змінна, яка є константою або мінливістю.
Класифікатори типів виражають спосіб доступу до змінної або зберігання змінної в пам'яті, зберігаючи значення або інтерпретацію змінної незмінним. Певним чином, класифікатори типів додають більше уточнень змінним.
У C ++ кваліфікатор типу вказується безпосередньо перед специфікатором типу (тип даних) змінної.
Класифікатори типу в C ++ класифікуються, як показано нижче:
# 1) конст
Специфікатор типу “const” полягає у визначенні об’єктів типу const. Об’єкт const або змінну не можна змінювати після оголошення. Якщо робиться спроба змінити об'єкт const або змінну, то компілятор видає помилку. Ми вже бачили про константи / літерал у нашому попередньому уроці.
Визначення констант із використанням ключового слова «const» відповідає кваліфікатору типу «const».
# 2) летюча
Класифікатор типу “volatile” означає, що значення змінної, позначеної volatile, може бути змінено іншими способами, які не вказані програмою. Нестійкі змінні змінюються, як правило, внаслідок якихось зовнішніх факторів, а не обов’язково через програми. Іншими словами, вони мають мінливий характер.
Наприклад, змінна, яка зчитує температуру в реальному слові, може бути мінливою, оскільки температура зчитування може не повністю контролюватися програмою.
# 3) мінливий
“Мутабельний” тип кваліфікатора робить члени або змінні модифікованими.
Змінюваний кваліфікатор зазвичай застосовується до нестатичних членів класу non-const і non-reference типу. Відповідно до конкретних ситуацій, нам можуть знадобитися деякі змінні, щоб залишатися незмінними (не можуть бути змінені), а деякі змінні змінюватися. Цей тип кваліфікатора дуже допомагає, коли ми хочемо змінювати характеристики.
Класи зберігання на C ++
Наразі ми детально обговорили всі змінні C ++. Ми побачили, що змінні оголошуються з відповідними типами даних, а потім використовуються в програмі. Для повного визначення змінної нам також потрібні класи зберігання, крім їх типів даних.
Хоча ми дотепер не вказали жодного класу сховища для змінних, існував клас зберігання за замовчуванням “auto”, який застосовувався до всіх змінних.
Отже, що таке класи зберігання?
як відкрити торрентований файл - -
Класи зберігання вказують, як компілятор повинен обробляти змінну або функцію і як виділяти пам'ять для змінної. Він визначає видимість, обсяг і термін служби змінної. Термін служби змінної - це те, скільки часу змінна буде залишатися активною.
Видимість або область дії змінної - це те, до яких функцій або модулів буде доступна змінна. Ці класи зберігання вказуються перед типом даних змінної.
У C ++ ми маємо такі класи зберігання:
запитання та відповіді на співбесіду c ++ pdf
# 1) Клас автоматичного зберігання
Це клас зберігання за замовчуванням. Клас зберігання “Auto” застосовується до локальних змінних і автоматично присвоюється компілятором локальним змінним. Локальні змінні, яким передує ключове слово „auto”, залишаються активними у функції, в якій вони оголошені, і виходять за межі обсягу після виходу функції.
Якщо змінні, що мають клас автоматичного зберігання, не ініціалізовані або їм не присвоєно будь-яке значення, тоді вони мають сміття або невизначені значення.
Давайте побачимо приклад автоматичних змінних у програмі на C ++.
#include using namespace std; int main() { int i; float f; cout<<'Variable i = '< # 2) Зареєструвати клас зберігання Коли ми маємо вимогу, що до змінної потрібен швидший доступ, тоді ми використовуємо клас зберігання регістрів. Отже, замість того, щоб зберігати змінні в оперативній пам’яті (RAM), ці змінні зберігаються в регістрі ЦП і мають розмір, рівний розміру реєстру.
Крім того, оскільки ці змінні не мають місця в пам'яті, ми не можемо використовувати оператор ‘&’ з цими змінними.
Наявність змінної з класом зберігання реєстру не гарантує, що змінна завжди буде зберігатися в реєстрі. Натомість він просто припускає, що змінна може зберігатися в реєстрі і повністю залежить від обладнання та реалізації.
Регістри змінних мають обсяг і термін служби, подібні до автоматичних змінних.
Наприклад,
#include using namespace std; int main() { int i; register float f; cout<<'Variable i = '< # 3) Клас зовнішнього зберігання Клас зовнішнього сховища необхідний, коли змінні мають спільний доступ до декількох файлів. Зовнішні змінні мають глобальний обсяг, і ці змінні видно поза файлом, в якому вони оголошені.
Оскільки зовнішні змінні - це змінні, оголошені та визначені зовні в іншому файлі, вони не ініціалізуються.
Зовнішні змінні мають загальний обсяг, і термін служби зовнішніх змінних дорівнює строк дії програми, в якій він оголошений як завершений.
Зовнішні змінні можна оголосити наступним чином:
найкраще програмне забезпечення для клонування для Windows 10
extern int temp; int temp;
У наведеному вище прикладі ми маємо два оголошення змінних з однаковим іменем, але першим є зовнішня змінна, визначена в іншому місці. Ця зовнішня змінна буде корисною, коли ми включимо вихідний файл, у якому в нашій програмі визначена зовнішня змінна temp.
# 4) Клас статичного зберігання
Статичний клас зберігання повідомляє компілятору підтримувати значення змінної протягом усього життя програми. Статичні змінні подібні до локальних змінних, але їм передує ключове слово „static“.
На відміну від локальних змінних, які виходять за межі обсягу після виходу функції, статичні змінні не виходять за межі обсягу, коли функція чи блок виходять і їх значення зберігаються між викликами функції.
Статичні змінні ініціалізуються, і сховище їм виділяється лише один раз за час роботи програми. Статичні змінні ініціалізуються до 0, якщо вже не ініціалізовані під час оголошення.
Давайте розглянемо наступний приклад, щоб краще зрозуміти клас статичного зберігання.
#include using namespace std; void printvar() { static int var; var++; cout<<'static variable var = '< Вихід:
printvar виклик 1: статична змінна var = 1
printvar виклик 2: статична змінна var = 2
printvar виклик 3: статична змінна var = 3
printvar виклик 4: статична змінна var = 4
У наведеному вище коді ми маємо функцію ‘printvar’, в якій ми оголосили статичну змінну var типу int. Потім ми збільшуємо цю змінну та друкуємо її. В основній функції ми викликаємо функцію printvar чотири рази.
Тепер перевірте результат. Результат показує, що при кожному виклику функції статична змінна var збільшується на 1 від попереднього значення. Це статичний клас зберігання, який допомагає змінній підтримувати своє значення між викликами функцій. Статична змінна не повторно ініціалізується для кожного виклику функції.
Ми також повинні зауважити, що у функції printvar ми щойно оголосили статичну змінну і не ініціалізували її. Примітно, що коли ми не ініціалізуємо статичні змінні, їм присвоюється початкове значення 0.
Примітка: Клас статичного зберігання також можна застосувати до глобальних змінних. У цьому випадку змінна матиме глобальний обсяг і додатково статичне сховище.
# 5) Змінний клас зберігання
Змінюваний клас пам’яті застосовується лише до об’єктів класу. Застосовуючи змінний клас пам’яті, член об’єкта може замінити функцію-учасника ‘const’. Це означає, що змінний член або об'єкт може бути змінений функцією-членом, яка є 'const'.
Ми дізнаємось більше про функції та об'єкти const, а також про змінні члени в наших пізніших підручниках, коли дізнаємося про об'єктно-орієнтоване програмування на C ++.
Висновок
Це все про специфікатори типів та класи зберігання в C ++. Ми сподіваємось, що завдяки цьому посібнику ми змогли зрозуміти всі концепції щодо класів зберігання та специфікаторів типів.
У нашому майбутньому підручнику ми дізнаємося більше про різні оператори, що використовуються в C ++, разом із їх використанням.
=> Ознайомтесь із Повною серією навчальних програм C ++ тут
Рекомендована література
- Змінні в C ++
- Змінні Python
- Інтерфейс Java та підручник з абстрактних класів із прикладами
- Перетворення типів на C ++
- Змінні VBScript: Як оголосити та використовувати змінні - VBScript Dim
- Змінні та функції JMeter
- 10 КРАЩИХ постачальників безкоштовних хмарних сховищ (Інтернет-сховище 2021)
- Типи тестування на міграцію: зі сценаріями тестування для кожного типу