Qu'est ce qu'une variable?


Qu'est ce qu'une variable? 



Une variable sert à contenir des données, ces données peuvent Être des nombres (entier, relatif, décimaux, rationnel, irrationnel, réel (après c'est un peu plus complexe à gérer ?)), une chaine de caractères (une lettre, un mot, une phrase), ou bien le résultat d'une fonction que nous verrons bientôt. en C, ce sera surtout des nombres. Une variable en C sera stockée dans la mémoire de votre ordinateur. Ainsi, on est limité en variable, c'est pourquoi il faudra en utiliser le moins possibles. Imaginez que votre mémoire est un tableau avec l'adresse de la variable (on verra ce que c'est plus tard avec les pointeurs) et la valeur de la variable, celle que vous lui donnerais, ce tableau a une limite, elle varie suivant les configurations de votre ordinateur, c'est-À -dire la RAM (ou mémoire vive). A chaque déclaration de variable, votre système d'exploitation lui attribuera une place dans la RAM.



Pas d'inquiétude, j' explique. Pour schématiser ce qu'est une variable nous allons nous baser sur un petit programme traitant d'une variable. Recopiez le code ci-dessous :

Code c:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
long ageUtilisateur;
return 0;
}



Donc déjà on remarque encore une fonction "main" à l'intérieur de laquelle on peut voir deux instructions. Jusque là vous devez suivre ... Enfin j'espère sinon retournez lire la fin du chapitre précédent.

Etudions l'instruction :

Code c:
long ageUtilisateur;


Ici la variable est "ageUtilisateur", ageUtilisateur est son nom, son type est "long" nous détaillerons les types de variables après. 
Cette instruction est ce que l'on appel une déclaration de variable.
Là ça se complique, mais pas de soucis j'explique.

Chose importante : les noms de variables sont souvent source d'erreur. Leur nom ne peut être composé que de caractères alphanumériques (a - A, b - B, ..., 8,9) et du caractère de soulignement " _ " la touche 8 de votre clavier. On ne doit en aucun cas utiliser des espaces et d'autres caractères du genre : " ? ", " ; ", ... 
De plus le nom ne doit pas commencer par un chiffre. Enfin préférez utiliser des noms compréhensibles ( par exemple : vieMonstre vaut mieux que : vM )

Ainsi :

sont justes : vieMonstre, vie_du_monstre, vie_monstre1, VIE_MONSTRE
sont faux : 1vie, viedepart-5, vie0,005
sont problématiques : a, A2, B2, b2, e, b


On remarque aussi dans ce code que la valeur de cette variable n'est pas visible. En fait la valeur que la variable contient est quelquonque. (==> c.f annexe mémoire)

Comment afficher la valeur de cette variable ?
Avec un printf tout bête rajoutez cette ligne juste après la déclaration de la variable ageUtilisateur :

Code c:
printf("ageUtilisateur vaut %ld", ageUtilisateur);


Vous verrez sans doute un nombre qui ne peut pas représenter un age humain.
Dans cette case de mémoire il y avait déjà un nombre utilisé précédemment par un autre programme. Rappelez vous le paragraphe sur la mémoire.

On peut remarquer "%ld" dans ce code, en fait il désigne la variables ageUtilisateur que l'on rajoute après les guillets. En gros que se passe t'il ? Et bien lors de la compilation, le compilateur remplace "%ld" par la valeur contenue dans la variables ageUtilisateur.

Dans ce programme aucune valeur n'est spécifiée et on l'a vu cela amène à des nombres improbables. C'est pour cela qu'il faut initialiser les variables que l'on utilise, en les mettant à zero si on ne connait pas à l'avance leur valeur, et si on les connait on initialise les variables à ces valeur . 

UNE VARIABLE NE PEUT CONTENIR QU'UNE SEUL VALEUR !!!! 

Si on a plusieurs valeurs a déclaré, on initialise autant de variable qu'il y a de valeur.

Du code pour illustrer tout cela :

Code c:
#include <stdio.h>
#include <stdlib.h>

int main ()
{
long ageUtilisateur = 0;
printf("ageUtilisateur vaut %ld", ageUtilisateur);
return 0;
}


Compiler le programme. Il affiche 0, tant mieux; il affiche erreur ou autre chose, vérififiez vos " ; " et si il le faut faites un copier coller du code ci-dessus.

Remplacer maintenant le zero par une autre valeur, entière ( pas de virgule ) et ne dépassant pas 2 milliards ( nous verrons pourquoi plus tard  ). Si vous compilez vous devez voir apparaitre la valeur que vous avez entré ... Magique ...

Il existe un autre genre de variable : les constantes. 
Comme leur nom l'indique, la valeur de ces variables ne peut pas changer au cour du déroulement du programme et si vous avez bien suivi, c'est là le contraire avec une variable " ordinaire" qui, elle, peut changer de valeur au cour du programme.

Pour définir une constante, on écrit :

Code c:
const long ageUtilisateur = 0;



Les types :


Nous avons vu qu'à chaque variable est associé un type. Toutes les données que vous utiliserez dans vos programmes vont suivre cette typologie. Nous verrons ici une partie (et la plus simple) des différents types existants. 

Ce type décide de l'occupation en mémoire de cette donnée.

Ces types se divisent en deux groupes : 

- les entiers
- les nombres a virgules flottantes

Les Entiers :

Les types stockant des nombres entiers sont :
  • int : il stocke le nombre sur deux octets, il permet de stocker des nombres entiers allant de - 32 768 à 32 767. On l'utilisera en priorité pour des petits nombres entiers.
  • long : l stocke un nombre sur quatre octets, il permet de stocker des nombres entiers allant de - 2 147 843 648 à 2 147 843 647. On l'utilisera en priorité, il permet surtout de gérer les erreurs de saisie d'un utilisateur (oui il y a toujours ceux qui tapent un nombre improbable pour tester le programme).


La plage de valeur d'un type dépend du nombre de combinaisons de nombres que l'on peut former sur le nombre d'octet qu'utilise le type. Par exemple pour le type int :
Il stock sur deux octets donc 16 bits :

16 x 16 + 16 x 16 = 256 x 256 = 65 536 combinaisons possibles qu'on sépare en deux un coté allant aux nombres négatifs et un autre aux positifs. Si vous n'avez absolument rien compris de ces deux paragraphes et du calcul ne vous inquiétez pas, il s'agit là non plus de C mais de binaire ( donc pas au programme :p ).

Les nombres à virgule :

  • float : il stock les nombres sur quatre octets, il permet de gérer des nombres allant de 3,4 x 10 puissance -38 à 3,4 x 10 puissance 38. Le type float nous sera utile pour gérer les nombres à virgule.
  • double : il stock les nombres sur huit octects, il permet de gérer des nombres allant de 1,7 x 10 puissance -308 à 1,7 x 10 puissance 308. 


La plage des nombres des types de données à virgule flottante est beaucoup plus complexe que pour les types de nombres entiers. C'est pour cela qu'il ne vaut mieux pas en parler. 

Messages les plus consultés

Dépannage Informatique

Dépannage Informatique
Dépannage Informatique

Libellés

windows Explication Coups de coeur actu Astuces - trucs et bidules chrome securite photos optimisations Assistance informatique à domicile Tarifs informatique réparation de votre ordinateur chez vous Carte Graphique Logiciel sécurité astuces Tutorial firefox Boitier Périphérique OS Windows OS Mac Tutoriels Windows ressources retouche mobile reseaux videos Dépannage informatique à domicile bureautiques sauvegarde Actualité Alimentation Pré-histoire ICT Gimp DigiScrap OS Linux Windows 8 tutoriel Aircooling Gimp création Monitoring server Windows 7 Word astuce Carte Mère Pilotes-drivers-PC captures design divers langage Html navigateurs pdf Acer Aspire Android Réparer clé usb USB 2 Unix Linux hardware informations logiciel loisirs sciences Cours C Geek Vintage HP Pavilion Internet SSD microsoft Gimp retouche image Lan Management Stockage Watercooling XnView conversion définition explication video google reseaux sociaux Configurations Complètes Curseurs souris Imprimer Samsung Notebook NP USB bootable Usb 3 WinXP Windows Seven Wordpress XPI iPhone icones résolution Développement Fujitsu Amilo Linux Logiciel USB Objets connectés Optimiser Probleme USB Processeur RAM Tutoriels iPhone/iPad/iPod bureautique clé usb exercice windows feature internet java mise à jour optimiser Windows 7 recadrer resaux et material templates vie privée Administration Apple Asus Eeepad Asus G Asus X Bidouille Défragmentation Dépannage Electronique Facebook Gadget Windows 7 Gimp ressources IOS (iPhone / Ipad) JPG LaPoste Licence Windows MSE Malwarebytes Migration Optimisation Packard Bell Easynote Photoshop Product key Récupérer fichiers Réparer Sécurity Theme Windows 7 Thunderbird Toshiba Satellite Tutoriels Divers Tutoriels Photoshop Tutoriels Spécial Windows 8 Ubuntu Windev Windows Update Windows XP Zend affichage anti-virus antivirus clavier et souris comment enlever les yeux rouges framework games gestion des images installation le materiel informatique linux mode sans échec musiques métadonnée nettoyer ordinateur pixel poids smartphone solution informatique taille telechargement tutorial téléphone virus 0x80244019 11x20 14 juillet 2015 16/9ème 7z 80070490 8E5E03FA 8E5E03FB ABC de la sécurité Accélérer le démarrage Acer Aspire One Acer Extensa Acer Iconia Alarme Alt key status Anonymat Anti Yeux rouges Arduino Astuces Jeux iPhone/iPad/iPod Asus Memo Pad Asus Transformer Book Asus Transformer Pad Asus VivoBook Authentification Automatisation Autorisation d'accès BF3 Batterie PC BattleField 2 Bioshock BranchCache C CS6 Caps Lock status Ccleaner Cheval de Trois Classic Shell CookieViz Ctrl key status Cube DOS DPI Dossier partagé Démarrage Ecran Bleu Windows 7 Ecran Bleu mort Excel Explorateur Windows Fin Windows XP Fond ecran Fujitsu Lifebook Gateway Gimp Gimp installation Gimp suggestions Google Hard Drive activité Hardware Horloges Windows 7 IBM Lenovo 3000 IBM Thinkpad ISO Windows 8 ISO Windows 8.1 Internet Explorer Internet Explorer 8 Jeu Jeux Jeux-video Live USB Livres Lubuntu Ma Musique Mac Menu Mes Documents Mes Images Mes Vidéos Microsoft Microsoft Office Microsoft Security Essentials Num Lock status OEM PC grande marque Pare-feu Partage SMB Patrice A. BONNEFOY PicPick Polaroid Probleme mise a jour ProductKey Publicité Quota RAW Recovery Ressource partagée Restauration Réinitialiser Mot de Passe Windows 7 Rôles et fonctionnalités Samsung Série 3 Scroll Lock status SevenZip Shift key status Site Web Spyboot TIF Taux de panne Taux de retour Toshiba Qosmio TrayStatus Trojan Tutoriels Office USB-RS232 UTC Virtualisation WinTools Windows 10 Windows 8.1 Windows Defender Windows Embedded Industry Windows Embedded POSReady Windows Server 2003 Windows Server 2015 Windows Update impossible Windows XP SP3 Windows key status Windows n'est pas authentique WindowsUpdateAgent WindowsUpdateAgent30-x86.exe WpKey XP jusqu'au 9 avril 2019 Xubuntu activation activation Windows activer Windows ads adware android arrêt des mise à jour de Windows XP assemblage PC barre des charmes base de donnée bleu de Windows 7 blog booster bouton démarrer capture écran choix distribution Linux classement chronologique clavier clé produit code malicieux commande Exécuter comment réinitialiser mot de passe compatibilité des applications compte local cookies cookies Chrome cookies Firefox cookies Internet Explorer cookies Opera cookies Safari cours Vb crack date de prise de vue disques durs drive-by dual-boot décalage heure défragmentation Windows 7 défragmentation du disque démarrer en mode normal déplacer déplacer Ma Musique déplacer Mes Documents déplacer Mes Images déplacer Mes Vidéos exif exploit facebook faille de sécurité fiabilité des composants format argentique format d'image format numérique grandes marques hacker heure GMT heure système hi-tech humour iPod infographie insolite interface graphique animée intranet joke joomla lancer programme au démarrage langages licence OEM logiciels malveillants mac maintenance malware meilleurs composants informatiques mises à jour mode détails mode normal mode sans echec mode sans echec windows 7 moniteur montage PC mort Windows XP msconfig navigateur nettoyage news optimiser son pc panoramique partitionner pas de son phishing php piratage prolonger mises à jour promo raccourcis rapport recadrer par lot redimensionner restaurant riskwares rootkit récupérer clé produit récupérer product key réparation windows 7 réparer réparer windows 7 sans le formater sauvegarde Windows 7 sauvegarde des données sauvegarder screenshot site web MS spam speeddial spyware supprimer cookies toujours en mode sans échec ubunto un disque dur utiliser utilitaires vbs vignettes windows7 économiseur d'écran écran