Conteúdo do Curso
Fundamentos de C
Fundamentos de C
Sizeof
Tamanho dos Dados
A função sizeof()
é um elemento básico na programação em C. Ela ajuda a determinar o tamanho (em bytes) do objeto ou tipo especificado.
Por exemplo, vamos ver quantos bytes o tipo de dado int
ocupa:
main
#include <stdio.h> int main() { printf("Size of int type: %d bytes\n", sizeof(int)); return 0; }
O tipo de dado int
ocupa 4 bytes.
Nota
Tenha em mente que diferentes compiladores podem alocar tamanhos de byte variados para o mesmo tipo de dado.
Bits
Um bit é a unidade mais básica de dados que um computador usa. Cada byte consiste em oito bits.
Foi decidido coletivamente pelos engenheiros equiparar um byte a 8 bits porque essa configuração representa convenientemente números decimais.
Você provavelmente já ouviu falar do sistema de numeração binária, que forma a base das operações de computador.
Em essência, o objetivo é representar valores numéricos que usamos em nosso dia a dia usando combinações de zeros e uns. Qualquer número pode ser representado como uma combinação de potências de dois.
Por exemplo, o número 7 pode ser representado como "111", e aqui está a explicação:
Os valores 0 ou 1 não têm significado matemático inerente; eles apenas indicam o estado de um bit.
- 0 – o bit está inativo;
- 1 – o bit está ativo.
O número 113, em binário, aparece como "01110001":
Tipos de Dados
O que distingue diferentes tipos de dados? – Seu tamanho em bytes!
Main
#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)); // double is like float, but better return 0; }
Você pode utilizar a função sizeof()
em um array para determinar seu tamanho:
main
#include <stdio.h> int main() { int intArray[10]; printf("Size of int array: %d bytes\n", sizeof(intArray)); return 0; }
Um array com 10 elementos inteiros ocupa 40 bytes, o que significa que cada elemento individual consome 4 bytes. Se você dividir o tamanho total do array pelo tamanho de um de seus elementos, determinará a contagem de elementos do array:
main
#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 }; int sizeOfArray = sizeof(data) / sizeof(int); // or sizeof(data) / sizeof(data[0]); printf("Elements in an array: %d\n", sizeOfArray); return 0; }
Obrigado pelo seu feedback!