Notions de base de stockage de variables pour la programmation de c

Le stockage numérique est mesurée en octets. Bien affichée dans le langage de programmation C, toutes les informations stockées mémoire à l'intérieur est tout simplement une masse de données, les bits empilés sur des bits, octets sur octets. Il est au logiciel pour donner un sens à tout cela.

Sommaire

Introduction au stockage des variables

Dans la programmation C, les données sont classées par type de stockage (char, int, float, ou double) et en outre classés par mots clés (long, court, signé ou non signé). Malgré le chaos à l'intérieur de la mémoire, le stockage de votre programme est organisé en ces valeurs, prêt à l'emploi dans votre code.

A l'intérieur d'un programme en cours d'exécution, une variable est décrit ces attributs:

  • Nom: le nom que vous donnez la variable. Le nom est utilisé seulement dans votre code, pas quand le programme fonctionne.

  • Type: l'un des types de variables du langage C: char, int, float, et doubles.

  • Contenu: mettre dans votre programme quand une variable est assigné une valeur. Bien que les données à l'emplacement de stockage de la variable peuvent exister à l'avance, il est considéré comme des ordures, et la variable non initialisée est considéré jusqu'à ce qu'il soit assigné une valeur.

  • Localisation: une adresse, un endroit à l'intérieur de la mémoire de l'appareil. Cet aspect d'une variable est quelque chose que vous ne devez pas dictate- le système de programme et d'exploitation négocier où l'information est stockée en interne. Lorsque le programme est exécuté, il utilise l'emplacement pour accéder aux données d'une variable.

Parmi ces aspects, le nom, le type et le contenu de la variable sont déjà connus de vous. L'emplacement de la variable peut également être recueillies. Non seulement cela, mais l'emplacement peut être manipulée, qui est l'inspiration derrière pointeurs.

Comment lire la taille d'une variable

Quelle est la taille char? Combien de temps est long? Seul le dispositif vous programmez connaît la taille de stockage exacte de variables standard de C.

Comment Big est une variable? utilise l'opérateur sizeof pour déterminer la quantité de stockage de chaque type de variable en langage C occupe en mémoire.

COMMENT BIG est une variable?

#include int main () {char c = c'-int 'i = 123-float f = 98,6 double d = 6.022E23-printf("chart%un",sizeof(c))-printf("intt%un",sizeof(i))-printf("floatt%un",sizeof(f))-printf("doublet%un",sizeof(d))-return(0)-}



Exercice 1: Tapez le code source à partir de quelle taille est une variable? dans votre éditeur. Construire et exécuter pour voir la taille de chaque type de variable.

Voici le résultat:

omble 1int 4float 4Double 8

Le mot-clé de sizeof est pas une fonction. Il est plus d'un opérateur. Son argument est un nom de variable. La valeur qui est renvoyée est du type de variable en langage C connu comme size_t.

La variable est un size_t typedef d'un autre type de variable, comme un unsigned int sur un PC ou un unsigned long int sur d'autres systèmes informatiques. La ligne de fond est que la taille indique le nombre d'octets utilisés pour stocker cette variable.

Les tableaux sont également variables dans C, et sizeof travaux sur eux.

COMMENT BIG est un tableau?

#include int main () {char string [] = "Est-ce que cette chaîne me faire grossir?" - printf ("La chaîne "% s ". a une taille de% u n", ficelle, sizeof (string )) - retour (0) -}

Exercice 2: Tapez le code source à partir de quelle taille est un tableau? Construire et exécuter pour voir la quantité de stockage du tableau de char occupe.

Exercice 3: Modifier votre code source à partir de quelle taille est un tableau? ajoutant la fonction strlen () pour comparer son résultat sur le tableau avec le résultat de l'opérateur sizeof.

Si les valeurs renvoyées par strlen () et sizeof diffèrent, pouvez-vous nous expliquer la différence?

Lorsque vous créez un tableau, le programme alloue de l'espace dans la mémoire pour conserver les valeurs du tableau. L'attribution est basée sur la taille de chaque élément dans le tableau. Ainsi, un tableau de char de 35 articles (y compris le 0, ou NULL) occupe 35 octets de stockage, mais la longueur de la chaîne est encore seulement 34 caractères (octets).

Exercice 4: Modifier le code source à partir de l'exercice 2, cette fois la création d'un tableau de int avec cinq éléments. Le tableau ne doit pas être attribué aucune valeur, ni ne doivent être affichées. Construire et exécuter.

Pouvez-vous expliquer la sortie? Si non, passez en revue la sortie de l'exercice 1. essayer de comprendre ce qui se passe.

Quelle est une structure?

#include int main () {robot struct {int nom en vie-char [5] xpos-INT -INT ypos-int force -} - printf ("La taille du mal robot struct est% u n", sizeof (robot struct) ) -retour (0) -}

Exercice 5: Démarrez un nouveau projet en utilisant le code affiché dans Quelle est l'importance d'une structure? Construire et exécuter pour déterminer la taille de la variable de structure.

L'opérateur sizeof fonctionne sur tous les types de variables, mais pour une structure, précise la structure elle-même. Utilisez le mot-clé struct suivi par le nom de la structure, comme le montre la ligne 14. Évitez d'utiliser une variable de structure.

La taille de la structure est déterminée en additionnant l'exigence de stockage pour chacun de ses éléments. Vous pourriez le penser, compte tenu de la sortie de la taille de l'exercice 18-5, que les quatre variables int, plus cinq variables Char vous donner 21: 4 x 4 + 1 x 5. Mais il ne fonctionne pas de cette façon.

Voici le résultat:

La taille du mal robot struct est 24

La raison pour laquelle vous voyez une valeur autre que 21 est que le programme aligne les variables en mémoire. Il ne se cumule pas, l'une après l'autre. Que les 3 octets supplémentaires sont rembourrés à la fin du nom réseau pour le maintenir aligné avec un décalage dans la mémoire de 8 octets.

image0.jpg
  • L'opérateur sizeof renvoie la taille d'une variable en langage C. Il comprend la taille d'une structure.

  • Vous ne pouvez pas utiliser sizeof pour déterminer la taille de votre programme ou de la taille de rien d'autre qu'une variable.

  • Lorsque vous utilisez sizeof sur une variable de structure, vous obtenez la taille de cette variable, qui peut être inférieure à la taille de la structure déclarée. Un problème peut survenir lors de l'écriture des structures dans un fichier si vous utilisez la taille de la variable plutôt que la taille de la structure définie.

  • Le décalage de 8 octets utilisée pour aligner les variables en mémoire conserve la CPU heureux. Le processeur est beaucoup plus efficace à la mémoire aligné à ces décalages de 8 octets à lire.


» » » » Notions de base de stockage de variables pour la programmation de c