logo

storleken på operatören i C

Storlek av är en mycket använd operator i C. Det är en unäroperator för kompileringstid som kan användas för att beräkna storleken på dess operand . Resultatet av sizeof är av typen osignerad integral som vanligtvis betecknas med size_t. sizeof kan tillämpas på vilken datatyp som helst, inklusive primitiva typer som heltals- och flyttalstyper, pekartyper eller sammansatta datatyper som struktur, union, etc.

Syntax:

 sizeof ( Expression );>

var ' Uttryck ' kan vara en datatyp eller en variabel av vilken typ som helst.



Lämna tillbaka: Det returnerar storleken på det givna uttrycket.

Tidskomplexitet: O(1)
Hjälputrymme: O(1)

Användning av operatorn sizeof().

storlek av() operator används på olika sätt beroende på operandtyp.

1. När operanden är en datatyp: När storlek av() används med datatyper som int, float, char... etc returnerar det helt enkelt mängden minne som allokerats till dessa datatyper.

lista metoder java

Exempel:

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>

Notera: sizeof() kan ge olika utdata beroende på maskin, vi har kört vårt program på en 32-bitars gcc-kompilator.

2. När operanden är ett uttryck: När storlek av() används med uttrycket, returnerar det storleken på uttrycket.

Exempel:

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 vet från det första fallet är storleken på int och dubbel 4 respektive 8, a är int variabel medan d är en dubbel variabel. Det slutliga resultatet kommer att bli dubbelt, så resultatet av vårt program är 8 byte.

Typ av operatör

sizeof() är en kompileringstidsoperator. kompileringstid hänvisar till den tidpunkt då källkoden konverteras till en binär kod. Den kör (kör) inte koden inuti ().

Exempel:

C




sträng understräng

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

>

>

Produktion

4 11>

Om vi ​​försöker öka värdet på x förblir det detsamma. Detta beror på att x inkrementeras inom parentesen och sizeof() är en kompileringstidsoperator.

Behov av storlek på

1. Så här tar du reda på antalet element i en array: Sizeof kan användas för att beräkna antalet element i arrayen automatiskt.

Exempel:

C




år in i kvartalen
// 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å här allokerar du ett minnesblock dynamiskt: sizeof används i stor utsträckning vid dynamisk minnesallokering. Till exempel, om vi vill allokera minne som är tillräckligt för att hålla 10 heltal och vi inte vet storleken på (int) i den specifika maskinen. Vi kan fördela med hjälp av sizeof.

Syntax:

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

För mer information, se artikeln – Tilldela ett minnesblock dynamiskt .