logo

operatørens størrelse i C

Størrelse af er en meget brugt operator i C. Det er en unær operator til kompileringstid, som kan bruges til at beregne størrelsen af ​​dens operand . Resultatet af sizeof er af typen uden fortegn, som normalt betegnes med size_t. sizeof kan anvendes på enhver datatype, inklusive primitive typer såsom heltal- og flydende kommatyper, pointertyper eller sammensatte datatyper såsom struktur, union osv.

Syntaks:

 sizeof ( Expression );>

hvor ' Udtryk ' kan være en datatype eller en variabel af enhver type.



Vend tilbage: Det returnerer størrelsen af ​​det givne udtryk.

Tidskompleksitet: O(1)
Hjælpeplads: O(1)

Brug af sizeof() operator

størrelse på () operator bruges på forskellige måder alt efter operandtypen.

1. Når operanden er en datatype: Hvornår størrelse på () bruges sammen med datatyper som f.eks. int, float, char... osv. returnerer den simpelthen mængden af ​​hukommelse, der er allokeret til de pågældende datatyper.

np.hvor

Eksempel:

C




// C Program To demonstrate> // sizeof operator> #include> int> main()> {> >printf>(>'%lu '>,>sizeof>(>char>));> >printf>(>'%lu '>,>sizeof>(>int>));> >printf>(>'%lu '>,>sizeof>(>float>));> >printf>(>'%lu'>,>sizeof>(>double>));> >return> 0;> }>

>

>

Produktion

1 4 4 8>

Bemærk: sizeof() kan give forskelligt output alt efter maskine, vi har kørt vores program på en 32-bit gcc compiler.

2. Når operanden er et udtryk: Hvornår størrelse på () bruges sammen med udtrykket, returnerer det størrelsen af ​​udtrykket.

Eksempel:

C




// C Program To demonstrate> // operand as expression> #include> int> main()> {> >int> a = 0;> >double> d = 10.21;> >printf>(>'%lu'>,>sizeof>(a + d));> >return> 0;> }>

>

>

Produktion

8>

Som vi ved fra det første tilfælde er størrelsen af ​​int og double henholdsvis 4 og 8, a er int variabel, mens d er en dobbelt variabel. Det endelige resultat vil være dobbelt, derfor er outputtet af vores program 8 bytes.

Type af operatør

sizeof() er en kompileringstidsoperator. kompileringstid refererer til det tidspunkt, hvor kildekoden konverteres til en binær kode. Den udfører (kører) ikke koden inde i ().

Eksempel:

C




manuel test

// C Program to illustrate> // that the 'sizeof' operator> // is a 'compile time operator'> #include> int> main(>void>)> {> >int> y;> >int> x = 11;> >// value of x doesn't change> >y =>sizeof>(x++);> >// prints 4 and 11> >printf>(>'%i %i'>, y, x);> >return> (0);> }>

hvad er map java
>

>

Produktion

4 11>

Hvis vi forsøger at øge værdien af ​​x, forbliver den den samme. Dette skyldes, at x er inkrementeret inde i parentesen, og sizeof() er en kompileringstidsoperator.

Behov for Størrelseof

1. Sådan finder du ud af antallet af elementer i en matrix: Sizeof kan bruges til automatisk at beregne antallet af elementer i arrayet.

Eksempel:

C




// C Program> // demonstrate the method> // to find the number of elements> // in an array> #include> int> main()> {> >int> arr[] = { 1, 2, 3, 4, 7, 98, 0, 12, 35, 99, 14 };> >printf>(>'Number of elements:%lu '>,> >sizeof>(arr) />sizeof>(arr[0]));> >return> 0;> }>

>

>

Produktion

Number of elements:11>

2. Sådan tildeler du en blok hukommelse dynamisk: sizeof bruges i høj grad i dynamisk hukommelsesallokering. For eksempel, hvis vi ønsker at allokere hukommelse, der er tilstrækkelig til at indeholde 10 heltal, og vi ikke kender størrelsen af ​​(int) i den pågældende maskine. Vi kan allokere ved hjælp af sizeof.

Syntaks:

int* ptr = (int*)malloc(10 * sizeof(int));>

For mere information, se artiklen – Tildel en hukommelsesblok dynamisk .