Partager via


opérateur sizeof de

Affiche la taille de son opérande par rapport à la taille du type char.

sizeof unary-expression
sizeof ( type-name )

Notes

le résultat de l'opérateur d' sizeof est de type size_t, un type intégral défini dans le fichier Include STDDEF.H.Cet opérateur vous permet d'éviter de spécifier les données d'ordinateur-dépendant dans vos programmes.

L'opérande à sizeof peut avoir l'une des valeurs suivantes :

  • un nom de type.Pour utiliser sizeof avec un nom de type, le nom doit être mis entre parenthèses.

  • Expression.En cas de utilisation avec une expression, sizeof peut être spécifié avec ou sans les parenthèses.l'expression n'est pas évaluée.

Lorsque l'opérateur d' sizeof est appliqué à un objet de type char, il donne 1.Lorsque l'opérateur d' sizeof est appliqué à un tableau, il transmet au nombre total d'octets dans ce tableau, pas la taille du pointeur représenté par l'identificateur du tableau.Pour obtenir la taille du pointeur représenté par l'identificateur du tableau, passez -le comme paramètre à une fonction qui utilise sizeof.Par exemple :

Exemple

// expre_sizeof_Operator.cpp
// compile with: /EHsc
#include <iostream>

size_t getPtrSize( char *ptr )
{
   return sizeof( ptr );
}

using namespace std;
int main()
{
   char szHello[] = "Hello, world!";

   cout  << "The size of a char is: "
         << sizeof( char )
         << "\nThe length of " << szHello << " is: "
         << sizeof szHello
         << "\nThe size of the pointer is "
         << getPtrSize( szHello ) << endl;
}

Résultat de l'exemple

The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4

Lorsque l'opérateur d' sizeof est appliqué à classe, à struct, ou au type d'union, le résultat est le nombre d'octets dans un objet de ce type, ainsi que toute marge intérieure ajoutée pour aligner des membres sur les limites d'un mot.Le résultat ne correspond pas nécessairement à la taille calculée en ajoutant les exigences en matière de stockage des membres individuels.L'option du compilateur de /Zp et les limites d'alignement pragma d'impact d' en-tête pack pour les membres.

L'opérateur d' sizeof ne donne jamais 0, même pour une classe vide.

l'opérateur d' sizeof ne peut pas être utilisé avec les opérandes suivants :

  • fonctions.(Toutefois, sizeof peut être appliqué à des pointeurs fonction.)

  • champs de bits.

  • Classes non définies.

  • le type void.

  • Tableaux à allocation dynamique.

  • Tableaux externes.

  • Types incomplets.

  • Noms entre parenthèses des types incomplets.

Lorsque l'opérateur d' sizeof est appliqué à une référence, le résultat est le même que si sizeof avait été appliqué à l'objet lui-même.

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

L'opérateur d' sizeof est souvent utilisé pour calculer le nombre d'éléments dans un tableau à l'aide d'une expression du formulaire :

sizeof array / sizeof array[0]

Voir aussi

Référence

Expressions avec des opérateurs unaires

Mots clés C++