Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Förståelse av sizeof-Operatorn | Sektion
C-data och operatorer

Förståelse av sizeof-Operatorn

Svep för att visa menyn

Funktionen sizeof() är en grundläggande del av C-programmering. Den används för att bestämma storleken (i byte) på det angivna objektet eller typen. Till exempel, låt oss se hur många byte datatypen int upptar:

main.c

main.c

12345678
#include <stdio.h> int main() { printf("Size of int type: %d bytes\n", sizeof(int)); return 0; }

Datatypen int upptar 4 byte.

Note
Notera

Observera att olika kompilatorer kan tilldela olika antal byte för samma datatyp.

Bitar

En bit är den mest grundläggande enheten av data som en dator använder. Varje byte består av åtta bitar.

Ingenjörer beslutade gemensamt att en byte ska motsvara 8 bitar eftersom denna konfiguration bekvämt representerar decimaltal. Du har troligen hört talas om det binära talsystemet, vilket utgör grunden för datorers funktion.

I grund och botten handlar det om att representera numeriska värden vi använder i vardagen med hjälp av kombinationer av nollor och ettor. Varje tal kan representeras som en kombination av tvåpotenser. Till exempel kan talet 7 skrivas som 111, och här är uppdelningen:

Värdena 0 eller 1 har inte i sig någon matematisk betydelse; de anger bara ett bits tillstånd.

  • 0 – biten är inaktiv;
  • 1 – biten är aktiv.

Talet 113 ser i binär form ut som 01110001:

Main.c

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; }

Du kan också använda funktionen sizeof() på en array för att fastställa dess storlek:

main.c

main.c

12345678910
#include <stdio.h> int main() { int intArray[10]; printf("Size of int array: %d bytes\n", sizeof(intArray)); return 0; }

En array med 10 heltalselement upptar 40 byte, vilket innebär att varje enskilt element använder 4 byte. Om du dividerar arrayens totala storlek med storleken på ett av dess element får du fram antalet element i arrayen:

main.c

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; }
question mark

Vilken C-uttryck returnerar antalet element i arrayen arr?

Vänligen välj det korrekta svaret

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Förståelse av sizeof-Operatorn

Funktionen sizeof() är en grundläggande del av C-programmering. Den används för att bestämma storleken (i byte) på det angivna objektet eller typen. Till exempel, låt oss se hur många byte datatypen int upptar:

main.c

main.c

12345678
#include <stdio.h> int main() { printf("Size of int type: %d bytes\n", sizeof(int)); return 0; }

Datatypen int upptar 4 byte.

Note
Notera

Observera att olika kompilatorer kan tilldela olika antal byte för samma datatyp.

Bitar

En bit är den mest grundläggande enheten av data som en dator använder. Varje byte består av åtta bitar.

Ingenjörer beslutade gemensamt att en byte ska motsvara 8 bitar eftersom denna konfiguration bekvämt representerar decimaltal. Du har troligen hört talas om det binära talsystemet, vilket utgör grunden för datorers funktion.

I grund och botten handlar det om att representera numeriska värden vi använder i vardagen med hjälp av kombinationer av nollor och ettor. Varje tal kan representeras som en kombination av tvåpotenser. Till exempel kan talet 7 skrivas som 111, och här är uppdelningen:

Värdena 0 eller 1 har inte i sig någon matematisk betydelse; de anger bara ett bits tillstånd.

  • 0 – biten är inaktiv;
  • 1 – biten är aktiv.

Talet 113 ser i binär form ut som 01110001:

Main.c

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; }

Du kan också använda funktionen sizeof() på en array för att fastställa dess storlek:

main.c

main.c

12345678910
#include <stdio.h> int main() { int intArray[10]; printf("Size of int array: %d bytes\n", sizeof(intArray)); return 0; }

En array med 10 heltalselement upptar 40 byte, vilket innebär att varje enskilt element använder 4 byte. Om du dividerar arrayens totala storlek med storleken på ett av dess element får du fram antalet element i arrayen:

main.c

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; }
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 7
some-alt