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 | Datatyper och Variabler
C-Grunder

bookFörståelse av sizeof-Operatorn

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

main.c

main.c

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

Datatypen int upptar 4 byte.

Note
Notering

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 skulle motsvara 8 bitar eftersom denna konfiguration på ett smidigt sätt representerar decimala tal. Du har troligen hört talas om det binära talsystemet, vilket utgör grunden för datorers funktion.

I grund och botten är målet 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 uttryckas som 111, och här är uppdelningen:

Värdena 0 eller 1 har i sig ingen matematisk betydelse; de anger endast 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

copy
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

copy
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

copy
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

Vilket C-uttryck returnerar antalet element i arrayen arr?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. 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

Suggested prompts:

Can you explain how the sizeof() function works with different data types?

How do I convert a decimal number to binary manually?

Can you show more examples of binary representations for other numbers?

Awesome!

Completion rate improved to 2.63

bookFö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 avgöra storleken (i byte) på det angivna objektet eller typen. Låt oss till exempel se hur många byte datatypen int upptar:

main.c

main.c

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

Datatypen int upptar 4 byte.

Note
Notering

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 skulle motsvara 8 bitar eftersom denna konfiguration på ett smidigt sätt representerar decimala tal. Du har troligen hört talas om det binära talsystemet, vilket utgör grunden för datorers funktion.

I grund och botten är målet 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 uttryckas som 111, och här är uppdelningen:

Värdena 0 eller 1 har i sig ingen matematisk betydelse; de anger endast 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

copy
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

copy
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

copy
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

Vilket C-uttryck returnerar antalet element i arrayen arr?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7
some-alt