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 .