quelle est la différence entre la statique et la normale des variables en c++?
J'ai besoin de connaître la différence,je suis débutant.
Cela ne signifie pas paraître grossier mais... prenez un livre. C++ Primer doit contenir la réponse à ces questions simples, avec de beaux exemples. C++ n'est pas une langue, vous pouvez grok de peering à des forums / Q&Un site.
OriginalL'auteur suma | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
Ci-dessus donne de sortie:
Statique de la variable conserve sa valeur, tandis que les non-statique ou dynamique de la variable est initialisée à " 1 " à chaque fois que la fonction est appelée. Espérons que cela aide.
Ainsi, la statique de la variable peut être déclarée qu'une seule fois. Et cela signifie que le compilateur ignore deuxième temps de l'initialisation de la variable statique, le code 'static int static_var = 1;' est ignoré?
OriginalL'auteur edz007
Une variable statique est un seul emplacement mémoire associé à la classe.
Une variable non statique (qui est un membre d'une classe) représente un autre emplacement de mémoire pour chaque instance de la classe.
Variables statiques peuvent être initialisé qu'une seule fois, et de confier à 0 lorsqu'un objet est créé.
OriginalL'auteur Ted Hopp
static
espace de noms de la portée des variables ont une liaison interne, tandis que les non-static
espace de noms de la portée des variables ont une liaison externe par défaut! Détails: unconst
espace de noms de la portée de la variable a une liaison interne par défaut. Ce lien peut être modifié par mot-cléextern
.static
variables dans une classe est associée à la classe, ce qui signifie que toutes les instances de la classe ont les mêmes instances des variables statiques; ils ressemblent à des variables globales que chaque instance de la même classe a accès.static
variables dans une classe sont les membres de l'instance, qui est, à chaque instance de la classe a ses propres instances de la non-static
variables.static
données membres d'une classe a une liaison externe si le nom de la classe a une liaison externe. [$3.5/5]static
variable à l'intérieur d'une fonction conserve sa valeur même après le retour de la fonction.Qui est, de sa durée de vie est égale à la durée de vie du programme lui-même. Ceci est démontré dans Mahesh réponse.
static
. Venez pour penser à elle, je vais le faire moi-même. 🙂Si possible, modifier mon post que vous pensez est juste.
fait. Je ne suis pas sûr, j'ai couvert tous les angles. Laissons cela à @Johannes... 😉
OriginalL'auteur Nawaz
Principale différence entre la statique et de la variable normale est au cours de leur vie, par exemple la portée et la durée de vie de la variable locale est dans la fonction de la boucle dans laquelle elle est déclarée, mais la portée de la variable statique est la même que la variable locale signifie qu'il sera accessible à l'intérieur de laquelle la fonction est déclarée(si ce n'est défini à l'échelle mondiale), mais la durée de vie est par le biais du programme. Ainsi, la mémoire de l'allocation dépend de la durée de vie, de manière variable statique ne mourra pas jusqu'programme se termine donc pas de nouvelle allocation de la mémoire, de sorte que fixe l'adresse de mémoire allouée pour les variables et la valeur de cette adresse sera écrasé à chaque fois que nous changeons la valeur de la variable, alors que pour la variable normale dès que vous sortez de la portée, de la variable de mourir(la mémoire sera libérée de cette variable) et quand vous allez définir la variable de nouveau l'adresse de mémoire sera attribué, nouvelle valeur sera stockée dans l'adresse et pas de notion de réécriture(quand on sort du champ d'application).
OriginalL'auteur PPatel
Statique de la variable conserve sa valeur pendant les appels de fonction/boucles mais variable locale n'en est rien;
Résultats:
1 1
1 2
1 3
1 4
1 5
Lorsqu'une variable statique est un membre d'une classe, chaque instance de partager la variable statique. Chaque instance n'a pas son propre exemplaire.
OriginalL'auteur Mahesh
OriginalL'auteur Swagato
supposons que
class A
a statique de la variable x... et non statique de la variable pmaintenant, si vous créez des centaines d'instance de la classe A (j'.e
A a;
) x serait partagée parmi cette centaine d'exemple... mais il y aurait des centaines de copie de p... une copie de p par exemple d'UnOriginalL'auteur mihir mehta
Il existe trois types différents de "statique" des variables.
À l'extérieur de fonctions et de classes, un "normal" variable serait une variable globale. Un
static
variable en dehors d'une fonction n'est pas globale, mais les à la .rpc fichier dans lequel elle est définie. (Ne pas définir ce type destatic
variables dans les fichiers d'en-tête!)L'intérieur d'une fonction, une variable normale est détruite lorsque la fonction se termine. Un
static
variable dans une fonction conserve sa valeur même après que la fonction se termine.À l'intérieur d'une classe, d'un membre normal appartient à un objet. Un membre statique est partagée entre tous les objets de ce type, et même qu'il existe avant tout un objet de cette classe est créée.
OriginalL'auteur MSalters