Mida de és un operador molt utilitzat en C. És un operador unari en temps de compilació que es pot utilitzar per calcular el mida del seu operand . El resultat de sizeof és del tipus integral sense signe que normalment es denota per size_t. sizeof es pot aplicar a qualsevol tipus de dades, inclosos els tipus primitius com ara els tipus enters i de coma flotant, els tipus de punter o els tipus de dades compostos com l'estructura, la unió, etc.
Sintaxi:
sizeof ( Expression );>
on ' Expressió ' pot ser un tipus de dades o una variable de qualsevol tipus.
Tornada: Retorna la mida de l'expressió donada.
Complexitat temporal: O(1)
Espai auxiliar: O(1)
Ús de l'operador sizeof().
grandària de () L'operador s'utilitza de diferents maneres segons el tipus d'operand.
1. Quan l'operand és un tipus de dades: Quan grandària de () s'utilitza amb els tipus de dades com int, float, char... etc, simplement retorna la quantitat de memòria assignada a aquests tipus de dades.
matriu de cadenes en llenguatge c
Exemple:
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;> }> |
>
>Sortida
1 4 4 8>
Nota: sizeof() pot donar una sortida diferent segons la màquina, hem executat el nostre programa en un compilador gcc de 32 bits.
2. Quan l'operand és una expressió: Quan grandària de () s'utilitza amb l'expressió, retorna la mida de l'expressió.
Exemple:
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;> }> |
>
>Sortida
8>
Com sabem pel primer cas, la mida d'int i double és 4 i 8 respectivament, a és una variable int mentre que d és una variable doble. El resultat final serà el doble, per tant, la sortida del nostre programa és de 8 bytes.
Tipus d'operador
sizeof() és un operador en temps de compilació. El temps de compilació fa referència al moment en què el codi font es converteix en un codi binari. No executa (executa) el codi dins ().
Exemple:
C
porció de matriu java
// 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);> }> |
>
>Sortida
4 11>
Si intentem augmentar el valor de x, segueix igual. Això es deu al fet que x s'incrementa dins dels parèntesis i sizeof() és un operador en temps de compilació.
Necessitat de Sizeof
1. Per esbrinar el nombre d'elements d'una matriu: Sizeof es pot utilitzar per calcular automàticament el nombre d'elements de la matriu.
Exemple:
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;> }> |
>
aprendre seleni
>Sortida
Number of elements:11>
2. Per assignar un bloc de memòria de manera dinàmica: sizeof s'utilitza molt en l'assignació de memòria dinàmica. Per exemple, si volem assignar memòria suficient per contenir 10 nombres enters i no sabem la mida de (int) en aquesta màquina en particular. Podem assignar amb l'ajuda de sizeof.
Sintaxi:
int* ptr = (int*)malloc(10 * sizeof(int));>
Per a més informació, consulteu l'article - Assigna un bloc de memòria de manera dinàmica .