logo

operator sizeof v C

Sizeof je pogosto uporabljen operator v C. Je unarni operator v času prevajanja, ki se lahko uporablja za izračun velikost njegovega operanda . Rezultat sizeof je nepredznačenega integralnega tipa, ki je običajno označen z size_t. sizeof je mogoče uporabiti za kateri koli podatkovni tip, vključno s primitivnimi tipi, kot so celoštevilski tipi in tipi s plavajočo vejico, tipi kazalcev ali sestavljeni podatkovni tipi, kot so struktura, unija itd.

Sintaksa:

 sizeof ( Expression );>

kje ' Izraz ' je lahko podatkovni tip ali spremenljivka katere koli vrste.



Vrnitev: Vrne velikost velikosti danega izraza.

Časovna zapletenost: O(1)
Pomožni prostor: O(1)

Uporaba operatorja sizeof().

sizeof() operator se uporablja na različne načine glede na vrsto operanda.

1. Ko je operand podatkovni tip: Kdaj sizeof() se uporablja s podatkovnimi tipi, kot so int, float, char… itd. preprosto vrne količino pomnilnika, dodeljenega tem podatkovnim tipom.

sonu nigam

primer:

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

>

>

Izhod

1 4 4 8>

Opomba: sizeof() lahko daje drugačen izhod glede na stroj, naš program smo izvajali na 32-bitnem prevajalniku gcc.

2. Ko je operand izraz: Kdaj sizeof() se uporablja z izrazom, vrne velikost izraza.

primer:

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

>

>

Izhod

8>

Kot vemo iz prvega primera, sta velikosti int in double 4 oziroma 8, a je spremenljivka int, medtem ko je d dvojna spremenljivka. Končni rezultat bo dvojni, zato je rezultat našega programa 8 bajtov.

Vrsta operaterja

sizeof() je operater v času prevajanja. čas prevajanja se nanaša na čas, ko se izvorna koda pretvori v binarno kodo. Ne izvaja (zažene) kode znotraj ().

primer:

C




kako brati iz datoteke csv v javi

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

>

>

Izhod

4 11>

Če poskušamo povečati vrednost x, ostane enaka. To je zato, ker se x povečuje znotraj oklepajev in je sizeof() operater v času prevajanja.

java številka v niz

Potreba po Sizeof

1. Če želite izvedeti število elementov v matriki: Sizeof lahko uporabite za samodejni izračun števila elementov matrike.

primer:

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

>

>

Izhod

Number of elements:11>

2. Če želite dinamično dodeliti blok pomnilnika: sizeof se veliko uporablja pri dinamičnem dodeljevanju pomnilnika. Na primer, če želimo dodeliti pomnilnik, ki zadostuje za shranjevanje 10 celih števil, in ne poznamo sizeof(int) v tem stroju. Dodelimo lahko s pomočjo sizeof.

Sintaksa:

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

Za več informacij si oglejte članek – Dinamično dodelite blok pomnilnika .