Операція sizeof. Операція ?:
Зміст
- 1. Яке призначення у програмі на C++ має операція sizeof?
- 2. Приклади використання операції sizeof для базових типів та числових значень
- 3. Як визначити розмір структурної змінної? Приклад
- 4. Як визначити розмір масиву чисел? Приклад
- 5. Як визначити розмір масиву структур? Приклад
- 6. Як визначити розмір об‘єкту (екземпляру) класу? Приклад
- 7. Як визначити розмір масиву об‘єктів класу? Приклад
- 8. Який загальний вигляд має у програмі тернарна операція ? : ?
- 9. Приклади використання операції ? :
- Зв’язані теми
Пошук на інших ресурсах:
1. Яке призначення у програмі на C++ має операція sizeof?
Операція sizeof призначена для визначення розміру типу даних, змінної базового типу, змінної структурного типу, числового значення, рядкового значення тощо.
Операція sizeof є корисною, коли необхідно динамічно виділяти пам‘ять для змінних. У цьому випадку потрібно знати об‘єм пам‘яті, що займає об‘єкт того чи іншого типу.
Загальний вигляд операції sizeof:
sizeof(тип_або_змінна)
де
- тип_або_змінна – назва типу даних або змінної (об‘єкту), що використовується на даний момент в програмі.
2. Приклади використання операції sizeof для базових типів та числових значень
У наведеному нижче фрагменті коду наведено приклад визначення розміру змінної базового типу, числового значення, рядкового значення або результату виразу.
// операція sizeof int a; short int b; float x; double y; long double z; int size; size = sizeof(b); // size = 2 size = sizeof(int); // size = 4 size = sizeof(a); // size = 4 size = sizeof(x); // size = 4 size = sizeof(double); // size = 8 size = sizeof(z); // size = 8 size = sizeof(long double); size = sizeof(bool); // size = 1 size = sizeof(true); // size = 1 size = sizeof(28); // size = 4 - як тип int size = sizeof(9.8 + 5); // size = 8 - як тип double size = sizeof("Hello world!"); // size = 13 size = sizeof('\n'); // size = 1
3. Як визначити розмір структурної змінної? Приклад
Нехай задано структурну змінну, що описує дані про студента. Шаблон структури описується в окремому файлі “MyStruct_Student.h”:
struct Student { char name[70]; int age; char address[100]; };
Тоді, щоб визначити об‘єм пам‘яті, що виділяється для змінної типу struct Student, можна написати такий програмний код:
#include "MyStruct_Student.h" ... // визначення розміру структурної змінної int size; Student ST; size = sizeof(struct Student); // size = 176 size = sizeof(ST); // size = 176 ...
4. Як визначити розмір масиву чисел? Приклад
// визначення розміру масиву int A[100]; // масив зі 100 цілих чисел float X[200]; // масив з 200 дійсних чисел int size; size = sizeof(A); // size = 4 * 100 = 400 size = sizeof(X); // size = 4 * 200 = 800
5. Як визначити розмір масиву структур? Приклад
Нехай задано структурну змінну, що описує дані про студента. Шаблон структури описується в окремому файлі “MyStruct_Student.h”:
struct Student { char name[70]; int age; char address[100]; };
Програмний код, що визначає розмір масиву зі 100 структурних змінних типу Student, буде мати такий вигляд:
#include "MyStruct_Student.h" ... // визначення розміру масиву структур Student A[100]; // масив зі 100 структур типу Student int size; size = sizeof(A); // size = 176 * 100 = 17600
6. Як визначити розмір об‘єкту (екземпляру) класу? Приклад
Нехай в модулі “MyClass.h” описується клас з іменем MyPoint:
class MyPoint { private: int x, y; public: int GetX(void) { return x; } int GetY(void) { return y; } void SetXY(int nx, int ny) { x = nx; y = ny; return; } };
Щоб визначити розмір пам‘яті, що виділяється для об‘єкту цього класу потрібно написати такий програмний код:
#include "MyClass.h" ... // розмір об'єкту класу MyPoint P1; int size; size = sizeof(P1); // size = 8 size = sizeof(MyPoint); // size = 8 ...
Як видно з результату, операція sizeof() визначає об‘єм пам‘яті, що виділяється під змінні (поля) класу.
7. Як визначити розмір масиву об‘єктів класу? Приклад
Нехай в модулі “MyClass.h” описується клас з іменем MyPoint:
class MyPoint { private: int x, y; public: int GetX(void) { return x; } int GetY(void) { return y; } void SetXY(int nx, int ny) { x = nx; y = ny; return; } };
Тоді, фрагмент програмного коду, що визначає розмір масиву з 20 об’єктів класу MyPoint, буде мати вигляд:
#include "MyClass.h" ... // розмір масиву об'єктів класу MyPoint P1[20]; int size; size = sizeof(P1); // size = 8 * 20 = 160 ...
8. Який загальний вигляд має у програмі тернарна операція ? : ?
Тернарна операція ? : може замінювати оператор умовного переходу if … else. Загальний вигляд операції ? : наступний:
вираз1 ? вираз2 : вираз3
де
- вираз1 – будь-який логічний вираз, результатом якого є значення true або false;
- вираз2 – вираз, що буде обчислений, якщо значення вираз1 = true;
- вираз3 – вираз, що буде обчислений, якщо значення вираз1 = false.
9. Приклади використання операції ? :
У нижченаведеному фрагменті коду обчислюється мінімальне значення між двома змінними a та b:
// операція ? : // мінімальне значення між двома числами int a, b; int min; a = 15; b = 8; min = a > b ? b : a; // min = 8
Зв’язані теми
- Оператор умовного переходу if
- Оператор вибору switch
- Оператори інкременту (++) та декременту (– –). Складені оператори присвоювання (+=, -=, …)
- Таблиця пріоритетності операцій