Розуміння Оператора sizeof
Свайпніть щоб показати меню
Функція sizeof() є основною у програмуванні на C. Вона допомагає визначити розмір (у байтах) вказаного об'єкта або типу. Наприклад, давайте дізнаємося, скільки байтів займає тип даних int:
main.c
12345678#include <stdio.h> int main() { printf("Size of int type: %d bytes\n", sizeof(int)); return 0; }
Тип даних int займає 4 байти.
Майте на увазі, що різні компілятори можуть виділяти різну кількість байтів для одного й того ж типу даних.
Біти
Біт — це найменша одиниця даних, яку використовує комп'ютер. Кожен байт складається з восьми бітів.
Інженери колективно вирішили прирівняти один байт до 8 бітів, оскільки така конфігурація зручно представляє десяткові числа. Ви, ймовірно, чули про двійкову систему числення, яка є основою роботи комп'ютерів.
У своїй суті мета полягає у представленні числових значень, які ми використовуємо у повсякденному житті, за допомогою комбінацій нулів і одиниць. Будь-яке число можна подати як комбінацію степенів двійки. Наприклад, число 7 можна зобразити як 111, і ось як це виглядає:
Значення 0 або 1 самі по собі не мають математичного значення; вони лише вказують на стан біта.
0– біт неактивний;1– біт активний.
Число 113 у двійковій системі виглядає як 01110001:
Main.c
123456789101112#include <stdio.h> int main() { printf("Size of int type: %d bytes\n", sizeof(int)); printf("Size of char type: %d bytes\n", sizeof(char)); printf("Size of double type: %d bytes\n", sizeof(double)); return 0; }
Ви також можете використовувати функцію sizeof() для масиву, щоб визначити його розмір:
main.c
12345678910#include <stdio.h> int main() { int intArray[10]; printf("Size of int array: %d bytes\n", sizeof(intArray)); return 0; }
Масив із 10 цілих елементів займає 40 байт, тобто кожен окремий елемент використовує 4 байти. Якщо поділити загальний розмір масиву на розмір одного з його елементів, можна визначити кількість елементів у масиві:
main.c
1234567891011121314151617#include <stdio.h> int main() { int data[] = { 4, 8, 1, 5, 0, 123, 66, 11, 64, 2, 7, 78, -0, 34, 23, 545, 98, 890, 65, 32, 412, 6, 5465, 87859, 656534, 324, 324, 456, 356, 341, 5654, 534, 756, 12 }; printf("Elements in an array: %d\n", sizeof(data) / sizeof(int); ); // Alternatevly you can use `sizeof(data) / sizeof(data[0])` return 0; }
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат