Partager via


opérateur sizeof de (c)

L'opérateur d' sizeof donne la quantité de stockage, en octets, requis pour le stockage d'un objet du type de l'opérande.Cet opérateur vous permet d'éviter de spécifier les données d'ordinateur-dépendant dans vos programmes.

sizeof unary-expression
sizeof ( type-name )

Notes

L'opérande est un identificateur qui est une unaire-expression, ou une expression de cast de type (autrement dit, un spécificateur de type entre parenthèses).L'unaire-expression ne peut pas représenter un objet de champs de bits, un type incomplet, ou un indicateur de fonction.le résultat est une constante intégrale non signée.l'en-tête standard STDDEF.H définit ce type comme size_t.

Lorsque vous appliquez l'opérateur d' sizeof à un identificateur du tableau, le résultat est la taille du tableau entière plutôt que la taille du pointeur représenté par l'identificateur du tableau.

Lorsque vous appliquez l'opérateur d' sizeof à un nom de structure ou d'union type, ou à un identificateur de structure ou d'union type, le résultat est le nombre d'octets dans la structure ou l'union, notamment la marge intérieure interne et de fin.Cette taille peut inclure la marge intérieure interne et de fin utilisée pour aligner les membres de la structure ou l'union sur des limites de mémoire.Ainsi, le résultat peut ne pas correspondre à la taille calculée en additionnant les exigences en matière de stockage des membres individuels.

Si une table non dimensionné est le dernier élément d'une structure, l'opérateur d' sizeof retourne la taille de la structure sans tableau.

buffer = calloc(100, sizeof (int) );

Cet exemple utilise l'opérateur d' sizeof pour passer la taille d' int, qui varie entre ordinateurs, comme argument à une fonction runtime nommée calloc.La valeur retournée par la fonction est stockée dans buffer.

static char *strings[] ={
          "this is string one",
          "this is string two",
          "this is string three",
         };
const int string_no = ( sizeof strings ) / ( sizeof strings[0] ); 

Dans cet exemple, strings est un tableau de pointeurs vers char.Le nombre de pointeurs est le nombre d'éléments dans le tableau, mais n'est pas spécifié.Il est facile de déterminer le nombre de pointeurs à l'aide de l'opérateur d' sizeof pour calculer le nombre d'éléments du tableau.La valeur entière string_no de const est initialisée à ce nombre.Comme il s'agit d'une valeur de const , string_no ne peut pas être modifié.

Voir aussi

Référence

Opérateurs C++