Chapitre 4 Variables et constantes (PDF)

Summary

This document details the concept of variables and constants in programming language C. It covers different types of constants, such as literal and symbolic constants, including numerical and textual values. Examples are included. The document also provides the basics of C's characters and their corresponding codes.

Full Transcript

4 Variables et constantes Dans cette section, on s’intéresse aux notions de variables et de constantes. 4.1 Constantes On a deux types de constantes : les constantes littérales et les constantes symboliques. 4.1.1 Constantes littérales Une constante littérale ne possède pas de nom, il s’agit simplem...

4 Variables et constantes Dans cette section, on s’intéresse aux notions de variables et de constantes. 4.1 Constantes On a deux types de constantes : les constantes littérales et les constantes symboliques. 4.1.1 Constantes littérales Une constante littérale ne possède pas de nom, il s’agit simplement d’une valeur : Valeur littérale : (ou constante littérale) en programmation, il s’agit d’une valeur donnée explicitement dans le code source, par opposition à une variable ou une constante symbolique, qui sont, elles, représentées par un identificateur. Nous allons distinguer les valeurs numériques des valeurs textuelles.  Valeurs numériques En langage C, les constantes entières peuvent être exprimées en bases 8, 10 et 16 : Octal (base 8) : le nombre doit commencer par 0 Décimal (base 10) : écriture classique Hexadécimal (base 16) : le nombre doit commencer par 0x (ou 0X) Exemple : valeur 123 Octal : 0123 Décimal : 123 Hexadécimal : 0x123 (ou 0X123) Le type d’une constante littérale entière dépend de sa valeur. À noter que l’on peut forcer le compilateur à considérer la constante comme un entier naturel (unsigned) en utilisant le suffixe u (ou U). Par exemple, 10u force le compilateur à utiliser le type unsigned int au lieu de int (i.e. signed int) pour représenter 10. De la même façon, le suffixe l (ou L) permet de forcer le compilateur à utiliser le type long. Donc 10l correspond à la valeur 10 représentée par un long. Enfin, on peut combiner les deux suffixes : 10ul sera la valeur 10 représentée par un unsigned long. Les constantes réelles sont exprimées en utilisant un point décimal, par exemple : 10.6. On peut omettre la partie entière ou la partie décimale, mais pas les deux : 10. correspond à 10.0 et.6 correspond à 0.6. On peut aussi utiliser la notation scientifique en séparant les chiffres significatifs et l’exposant par la lettre e (ou E). Les expressions suivantes sont équivalentes : 12.5 1.25e1 0.125e2.125e2 Prepa A1 AU : 24-25 1/10 Programmation C / H.CH Par défaut, une valeur réelle est de type double. Comme pour les entiers, on peut influencer le compilateur à l’aide de suffixes. Pour obtenir un float, il faut faire suivre le nombre de la lettre f (ou F) par exemple : 12.5f. Pour un long double, on utilise l (ou L) : 12.5l.  Valeurs textuelles Il est possible d’utiliser un caractère pour représenter une valeur comprise entre 0 et 255. La valeur numérique correspond alors au code ASCII du caractère indiqué. Pour être interprété littéralement par le compilateur, i.e. pour ne pas être confondu avec un identificateur ou un mot- clé, le caractère doit être entouré de deux apostrophes (i.e. '). Exemple : le caractère 'A' correspond à la valeur numérique (code ASCII) 65 Le type d’une constante littérale prenant la forme d’un caractère est char. Le caractère antislash (backslash) (i.e. \) permet d’exprimer les caractères spéciaux, notamment les caractères non- imprimables à l’aide de combinaisons suivantes (appelées séquences d’échappement) : '\'' apostrophe '\\' antislash '\n' retour à la ligne '\t' tabulation '\a' signal sonore Etc. La représentation '\code' permet de définir un caractère dont le code ASCII est code exprimé en octal ou en hexadécimal (le code commencera par x dans le cas hexadécimal). Exemple : printf("\101\102"); // affiche AB Car les caractères A et B ont respectivement les codes ASCII 101 et 102 en octal. printf("%c",'\101'); // affiche A printf("%c",toupper('a')); // affiche A printf("\n %c",toupper('\141')); // affiche A La fonction toupper() permet de convertir un caractère du minuscule au majuscule. 141 est le code ASCII en octal du caractère a. Remarque : afin d’améliorer la lisibilité de vos programmes, il est recommandé d’utiliser un caractère littéral quand on veut manipuler une lettre, et une valeur numérique quand on veut manipuler un entier. Autrement dit : ne pas écrire explicitement le code ASCII d’un caractère pour manipuler celui-ci, mais plutôt utiliser le caractère lui-même. Cette dualité dans la façon d’interpréter une valeur numérique (soit comme un nombre en soit, soit comme le code ASCII d’un caractère) se retrouve en C dans les formats utilisés pour afficher et saisir des données. Exemples : Le programme suivant utilise le format entier %d pour afficher le code ASCII des caractères passés en paramètres de printf : printf("%d\t %d\t %d \n",'a','b','c'); 97 98 99 Les entiers 97, 98 et 99 sont les codes des caractères a, b et c dans la table ASCII. Prepa A1 AU : 24-25 2/10 Programmation C / H.CH Une boucle affichant l’alphabet en minuscules : char i ; for(i='a';i

Use Quizgecko on...
Browser
Browser