Ce n'sizeof faire?
Quelle est la fonction principale de sizeof
(je suis novice en C++). Par exemple
int k=7;
char t='Z';
Ce n' sizeof (k)
ou sizeof (int)
et sizeof (char)
veux dire?
Il vous manque un ' dans votre char.
McHenry Timing est un peu en dehors de la marque pour moi à 0,08 secondes.
si vous allez en apprendre un langage de programmation, vous devriez vraiment essayer de lire un décent livre d'introduction à la langue pour obtenir les bases, ne pas laisser d'essais, d'erreurs, de tâtonnements et d'interminables questions sur.
Il m'amuse toujours quand je Google pour une question, et le premier lien est pour AINSI où quelqu'un est d'être réprimandé pour demander plutôt que de googler! 🙂
Je vais voter pour fermer cette question hors-sujet parce que cette question ne montre aucun effort à tous.
McHenry Timing est un peu en dehors de la marque pour moi à 0,08 secondes.
si vous allez en apprendre un langage de programmation, vous devriez vraiment essayer de lire un décent livre d'introduction à la langue pour obtenir les bases, ne pas laisser d'essais, d'erreurs, de tâtonnements et d'interminables questions sur.
Il m'amuse toujours quand je Google pour une question, et le premier lien est pour AINSI où quelqu'un est d'être réprimandé pour demander plutôt que de googler! 🙂
Je vais voter pour fermer cette question hors-sujet parce que cette question ne montre aucun effort à tous.
OriginalL'auteur dato datuashvili | 2010-07-08
Vous devez vous connecter pour publier un commentaire.
sizeof(x)
renvoie la quantité de mémoire (en octets) de la variable ou de typex
occupe. Il n'a rien à voir avec la valeur de la variable.Par exemple, si vous disposez d'un tableau de certains type arbitraire
T
alors la distance entre les éléments de ce tableau est exactementsizeof(T)
.Lorsqu'il est utilisé sur une variable, il est équivalent à l'utilisation sur le type de cette variable:
Comme une règle-de-pouce, il est préférable d'utiliser le nom de la variable, si possible, juste au cas où les changements de type:
Utilisés sur des types définis par l'utilisateur,
sizeof
renvoie toujours la quantité de mémoire utilisée par les instances de ce type, mais il est intéressant de souligner que ce n'est pas nécessairement égale à la somme de ses membres.Tout
sizeof(int) + sizeof(char)
est généralement5
, sur de nombreuses machines,sizeof(Foo)
peut être8
parce que le compilateur a besoin de tampon la structure, de sorte qu'il repose sur 4 octets limites. Ce n'est pas toujours le cas, et c'est tout à fait possible que sur votre machinesizeof(Foo)
sera de 5, mais vous ne pouvez pas compter sur elle.mais il me montre 4 pourquoi
Il montre 4 en raison d'un
int
utilise généralement en hausse de 4 octets.sizeof
n'a rien à voir avec la valeur stockée dans la variable.nit: techniquement, sizeof ne prend pas en rapport de la taille, en octets, mais quelle que soit l'unité nécessaire pour que sizeof(char) == 1. Le est presque universellement octets, mais au moins, en théorie, pas nécessairement.
À partir de la norme: "L'opérateur sizeof donne le nombre d'octets dans la représentation des objets de son opérande." Cependant, vous êtes en droit d'octets dans la norme n'est pas explicitement définie comme 8-bits comme d'habitude.
OriginalL'auteur Peter Alexander
À ajouter à Peter Alexander réponse: sizeof donne la taille d'une valeur ou d'un multiple de la taille d'un
char
---char
étant définie comme la plus petite unité de mémoire adressable (en C ou C++) pour une architecture donnée (et, en C++, au moins, au moins 8 bits selon la norme). C'est ce qui est généralement entend par "octets" (la plus petite unité adressable pour une architecture donnée), mais il n'a jamais fait mal à clarifier, et il y a parfois des questions à propos de la variabilité desizeof (char)
, qui est bien sûr toujours1
.Droite: de mon point était que "byte" est en soi un terme ambigu, et peu importe comment vous le définissez, quelqu'un quelque part va l'utiliser différemment. Intéressant à propos de la Cdc.
La plupart des gens seront d'accord que d'un octet de 8 bits, et alors qu'il y avait une certaine confusion, c'est normalisée à nos jours: IEC 80000-13. En revanche, la plus petite unité adressable dans une machine est souvent appelé un mot, et il est dépendant de la machine. Il y a 16-, 32-, les architectures 64 bits, mais même dans ces contextes, un octet sera toujours en 8 bits.
OriginalL'auteur Derrick Turk
sizeof() retourne la taille de l'argument passé.
sizeof() de référence du rpc
OriginalL'auteur PeterK