Größe von ist ein häufig verwendeter Operator in C. Es handelt sich um einen unären Operator zur Kompilierungszeit, der zur Berechnung von verwendet werden kann Größe seines Operanden . Das Ergebnis von sizeof ist vom vorzeichenlosen Integraltyp, der normalerweise mit size_t bezeichnet wird. sizeof kann auf jeden Datentyp angewendet werden, einschließlich primitiver Typen wie Ganzzahl- und Gleitkommatypen, Zeigertypen oder zusammengesetzter Datentypen wie Struktur, Union usw.
Syntax:
sizeof ( Expression );>
Wo ' Ausdruck „kann ein Datentyp oder eine Variable beliebigen Typs sein.
Zurückkehren: Es gibt die Größe des angegebenen Ausdrucks zurück.
Zeitkomplexität: O(1)
Hilfsraum: O(1)
Verwendung des sizeof()-Operators
Größe von() Der Operator wird je nach Operandentyp auf unterschiedliche Weise verwendet.
1. Wenn der Operand ein Datentyp ist: Wann Größe von() wird mit Datentypen wie int, float, char usw. verwendet und gibt einfach die Menge an Speicher zurück, die diesen Datentypen zugewiesen ist.
Java-Grundlagen
Beispiel:
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;> }> |
>
>Ausgabe
1 4 4 8>
Notiz: sizeof() kann je nach Maschine eine unterschiedliche Ausgabe liefern. Wir haben unser Programm auf einem 32-Bit-GCC-Compiler ausgeführt.
2. Wenn der Operand ein Ausdruck ist: Wann Größe von() Wird mit dem Ausdruck verwendet, gibt es die Größe des Ausdrucks zurück.
Beispiel:
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;> }> |
>
>Ausgabe
8>
Wie wir aus dem ersten Fall wissen, beträgt die Größe von int und double 4 bzw. 8, a ist eine int-Variable, während d eine Double-Variable ist. Das Endergebnis wird doppelt so hoch sein, daher beträgt die Ausgabe unseres Programms 8 Bytes.
Art des Betreibers
sizeof() ist ein Operator zur Kompilierungszeit. Die Kompilierungszeit bezieht sich auf den Zeitpunkt, zu dem der Quellcode in einen Binärcode konvertiert wird. Der Code in () wird nicht ausgeführt (ausgeführt).
Beispiel:
C
aws sns
// 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);> }> |
>
>Ausgabe
4 11>
Wenn wir versuchen, den Wert von x zu erhöhen, bleibt er gleich. Dies liegt daran, dass x innerhalb der Klammern erhöht wird und sizeof() ein Operator zur Kompilierungszeit ist.
Bedarf an Größe
1. Um die Anzahl der Elemente in einem Array herauszufinden: Mit Sizeof kann die Anzahl der Elemente des Arrays automatisch berechnet werden.
Beispiel:
C
Java-Architektur
// 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;> }> |
>
>Ausgabe
Number of elements:11>
2. So weisen Sie einen Speicherblock dynamisch zu: sizeof wird häufig bei der dynamischen Speicherzuweisung verwendet. Wenn wir beispielsweise ausreichend Speicher zuweisen möchten, um 10 Ganzzahlen aufzunehmen, und wir die Größe von (int) auf diesem bestimmten Computer nicht kennen. Wir können mit Hilfe von sizeof zuordnen.
Syntax:
int* ptr = (int*)malloc(10 * sizeof(int));>
Weitere Informationen finden Sie im Artikel – Weisen Sie einen Speicherblock dynamisch zu .