logo

operaattorin koko C:ssä

Koko on paljon käytetty operaattori C:ssä. Se on käännösaikainen unaarioperaattori, jota voidaan käyttää operandinsa kokoa . Koon sizeof tulos on etumerkitöntä integraalityyppiä, jota yleensä merkitään koko_t. sizeof:a voidaan soveltaa mihin tahansa tietotyyppiin, mukaan lukien primitiiviset tyypit, kuten kokonaisluku- ja liukulukutyypit, osoitintyypit tai yhdistetyt tietotyypit, kuten rakenne, liitto jne.

Syntaksi:

 sizeof ( Expression );>

missä ' Ilmaisu ' voi olla tietotyyppi tai minkä tahansa tyyppinen muuttuja.



Palata: Se palauttaa annetun lausekkeen koon koon.

Aika monimutkaisuus: O(1)
Aputila: O(1)

sizeof()-operaattorin käyttö

koko() operaattoria käytetään eri tavoin operandityypin mukaan.

1. Kun operandi on tietotyyppi: Kun koko() käytetään tietotyyppien, kuten int, float, char… jne. kanssa, se yksinkertaisesti palauttaa kyseisille tietotyypeille varatun muistin määrän.

Java-kielen haastattelukysymykset

Esimerkki:

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

>

>

Lähtö

1 4 4 8>

Huomautus: sizeof() voi antaa eri tulosteen koneen mukaan, olemme ajaneet ohjelmamme 32-bittisellä gcc-kääntäjällä.

2. Kun operandi on lauseke: Kun koko() käytetään lausekkeen kanssa, se palauttaa lausekkeen koon.

Esimerkki:

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

>

>

Lähtö

8>

Kuten tiedämme ensimmäisestä tapauksesta, int:n ja doublen koko on 4 ja 8, a on int-muuttuja, kun taas d on kaksoismuuttuja. Lopputulos on kaksinkertainen, joten ohjelmamme tulos on 8 tavua.

Operaattorin tyyppi

sizeof() on käännösajan operaattori. käännösaika tarkoittaa aikaa, jolloin lähdekoodi muunnetaan binäärikoodiksi. Se ei suorita (suorita) () sisällä olevaa koodia.

Esimerkki:

C




merkkijono char javassa

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

>

>

Lähtö

4 11>

Jos yritämme kasvattaa x:n arvoa, se pysyy samana. Tämä johtuu siitä, että x:ää kasvatetaan suluissa ja sizeof() on käännösajan operaattori.

Tarve kokoa

1. Voit selvittää taulukon elementtien lukumäärän seuraavasti: Sizeofilla voidaan laskea taulukon elementtien lukumäärä automaattisesti.

Esimerkki:

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

>

>

terminaali kali linux
Lähtö

Number of elements:11>

2. Varaa muistilohko dynaamisesti seuraavasti: sizeofia käytetään paljon dynaamisessa muistin varaamisessa. Jos esimerkiksi haluamme varata muistia, joka riittää säilyttämään 10 kokonaislukua, emmekä tiedä (int):n kokoa kyseisessä koneessa. Voimme allokoida sizeof:n avulla.

Syntaksi:

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

Lisätietoja saat artikkelista - Varaa muistilohko dynaamisesti .