2 votes

quelle est la différence entre les variables statiques et normales en c++ ?

J'ai besoin de connaître la différence, je suis débutant.

1voto

Swagato Points 11
  1. Les membres statiques sont des membres qui sont des membres partagés uniques communs à tous les objets créés pour une classe particulière, mais les membres non statiques ne le sont pas.
  2. L'allocation de mémoire n'est effectuée qu'une seule fois et non pas à chaque fois qu'un objet est créé comme les membres non statiques.
  3. Une seule copie de l'élément de données statique existera, quel que soit le nombre d'objets créés.
  4. Les fonctions membres statiques ne peuvent accéder qu'aux variables membres statiques, tandis qu'un membre non statique peut être accédé à la fois par des fonctions membres statiques et non statiques.
  5. Les membres statiques sont efficaces lorsqu'une seule copie des données est suffisante.

0voto

mihir mehta Points 8182

Supposons que class A a une variable statique x... et pas une variable statique p

Maintenant, si vous créez cent instances de la classe A (c'est-à-dire A a; ) x serait partagé entre ces cent instances... mais il y aurait cent copies de p... une copie de p par instance de A

0voto

R4444 Points 1149

En dehors des différences dans toutes ces réponses, il existe une autre différence entre static y local variables :

local sont stockées sur la pile, tandis que les variables static sont stockées dans le fichier data de la mémoire d'un processus.

-1voto

MSalters Points 74024

Il existe trois types différents de variables "statiques".

  1. En dehors des fonctions et des classes, une variable "normale" serait une variable globale. A static en dehors d'une fonction n'est pas globale, mais locale au fichier .cpp dans lequel elle est définie. (Ne définissez pas ce type de static dans les fichiers d'en-tête)

  2. À l'intérieur d'une fonction, une variable normale est détruite à la sortie de la fonction. A static dans une fonction conserve sa valeur même après la sortie de la fonction.

  3. Dans une classe, un membre normal appartient à un objet. Un membre statique est partagé entre tous les objets de ce type, et existe même avant la création de tout objet de cette classe.

-1voto

shubhajit22 Points 61

Les principaux Différence entre "variable statique" et "variable locale".

L'allocation de mémoire du La variable locale est désallouée si son travail est terminé. , d'autre part, l'allocation de mémoire pour les La variable statique reste la même jusqu'à ce que le programme se termine ou qu'elle soit remplacée par une autre valeur du programme. .

Par exemple, supposons que vous utilisez un problème de récursion, si vous utilisez la variable locale pendant l'appel récursif, l'allocation de mémoire de la variable locale est supprimée, pendant le retour de la fonction.

Par contre, si vous utilisez la variable statique, l'allocation mémoire de cette variable restera jusqu'à la fin du programme. Elle conservera ses valeurs lors du retour de la fonction, ou pourra être écrasée par le programme.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X