IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Valeur par defaut d'une variable apres la declaration


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Valeur par defaut d'une variable apres la declaration
    Bonjour tout le monde , j'ai un petit soucis {Je veux savoir pourquoi lorsqu'on decalre une variable int hors le main elle est initialiser par defaut a 0 et si on la declare dans le bloc main ca va leur par defaut est = 1988468276 }
    voila le code demonstrant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <stdio.h>
    #include <stdlib.h>
    int i_Hors_Main ;
    main()
    {
      int i_En_Main;
      printf("la valeur initiale de i decalré hors main ! %i\n" , i_Hors_Main);
     
    printf("la valeur initiale de i decalré Dans le main ! %i\n" , i_En_Main);  
      system("PAUSE");	
      return 0;
    }

    Merci de me répondre

    Bon reception

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 368
    Points : 23 622
    Points
    23 622
    Par défaut
    Si tu n'initialises pas ta variable explicitement, le compilateur se contente de réserver sa mémoire, dans la pile ou ailleurs. Si tu lis ta variable, tu obtiens le contenu de la mémoire à cet endroit, qui peut être n'importe quoi.

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Si tu n'initialises pas ta variable explicitement, le compilateur se contente de réserver sa mémoire, dans la pile ou ailleurs. Si tu lis ta variable, tu obtiens le contenu de la mémoire à cet endroit, qui peut être n'importe quoi.
    Les variables à durée de vie statique sont initialisées à zéro si elle ne sont pas initialisées spécifiquement à une autre valeur. Donc le zéro de sa variable globale est garanti, la variable locale elle a bien une valeur indéterminée.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #4
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    "Une variable de durée de vie statique" regroupe :
    - les variables déclarées en dehors de tout bloc d'une fonction
    - les variables déclarées dans un bloc avec le mot-clé static.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Les variables à durée de vie statique sont initialisées à zéro si elle ne sont pas initialisées spécifiquement à une autre valeur. Donc le zéro de sa variable globale est garanti, ...
    Oui, mais il faudrait commencer par expliquer à ysf ce qu'est la durée de vie d'une variable, ce qu'est une variable statique, ce qu'est une durée de vie statique.
    Dans le cas présent, je préfère la simplification : si une variable n'est pas initialisée explicitement, elle contiendra n'importe quoi. Mais on peut aussi ajouter que dans certains cas elle contiendra 0 (qui fait partie de l'ensemble "n'importe quoi")
    PS Melem a été plus rapide que moi

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Points : 641
    Points
    641
    Par défaut
    Citation Envoyé par Pierre Dolez
    elle contiendra 0 (qui fait partie de l'ensemble "n'importe quoi")
    Parce que zero, c'est n'importe quoi pour toi ?

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 684
    Points : 30 973
    Points
    30 973
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Pierre Dolez Voir le message
    Bonjour,
    Oui, mais il faudrait commencer par expliquer à ysf ce qu'est la durée de vie d'une variable, ce qu'est une variable statique, ce qu'est une durée de vie statique.
    Il faudrait aussi lui expliquer la différence entre "déclaration" et "définition"...

    Citation Envoyé par Lucien63 Voir le message
    Parce que zero, c'est n'importe quoi pour toi ?
    Il n'a pas dit que zéro était n'importe quoi (bien que d'un point de vue purement mathématique, zéro appartient à tous les ensembles mathématiques existants).
    Il a simplement dit qu'une variable non initialisée pouvait contenir n'importe quelle valeur. Et donc, étant donné qu'elle peut contenir n'importe quelle valeur, elle peut aussi contenir zéro. Et parfois, certaines conditions font qu'on est sûr qu'elle contient zéro.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Valeur par defaut d'une liste deroulante
    Par jpdar dans le forum IHM
    Réponses: 20
    Dernier message: 10/06/2016, 16h02
  2. valeur par defaut d'une colonne date
    Par K-Kaï dans le forum DB2
    Réponses: 2
    Dernier message: 27/12/2007, 09h26
  3. Réponses: 5
    Dernier message: 26/04/2007, 11h42
  4. Attribuer une valeur par défaut à une checkbox
    Par griese dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/12/2006, 09h57
  5. Réponses: 6
    Dernier message: 06/09/2006, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo