phoenix.270
Messages : 4 Points : 5413 Date de naissance : 29/03/1990 Date d'inscription : 20/02/2010 Age : 34
| Sujet: Les types de données du C Dim 21 Fév - 9:04 | |
| Les types de données du CNous allons définir les différents types de variables existantes en C. On verra les types scalaires (entiers,...) et les types agrégés (combinaisons de scalaires, tableaux par exemple).
Variables scalairesOn appelle variable scalaire une variable ne contenant qu'une seule valeur, sur laquelle on pourra faire un calcul arithmétique. On possède trois types de base (char, int, float) que l'on peut modifier par 3 spécificateurs (short, long, unsigned).
char : caractère (8 bits)Une constante caractère est désignée entre apostrophes (simples quotes). 'a' correspond à un octet (alors que "a" à deux octets : 'a' et '\0'). On peut définir certains caractères spéciaux, par le préfixe \ (antislash) :
- \n nouvelle ligne
- \t tabulation
- \b backspace
- \r retour chariot (même ligne)
- \f form feed (nouvelle page)
- \' apostrophe
- \\ antislash
- \" double quote
- \0 nul
- \nombre en octal sur 3 chiffres (ou moins si non suivi d'un chiffre).
- \xnombre : en hexa
Les char sont considérés dans les calculs comme des int (on considère leur code ASCII). Par défaut en C un char est signé donc peut varier de -128 à +127. Pour utiliser les caractères spéciaux du PC (non standard), il vaut mieux utiliser des unsigned char (de 0 à 255). Mais le comme C fait les calculs modulo 256, ça marche presque pareil.
int : entierSi l'on désire une taille précise, utiliser short int (16 bits) ou long int (32 bits). Sans précision, int donnera les programmes les plus rapides pour une machine donnée (int = short sur PC, mais long sur les stations 32 bits). Par défaut, les int sont signés, mais on peut préciser unsigned int.Désormais certains compilateurs considèrent short comme 16 bits, int comme 32 bits et long comme 64 bits.
float : réelUn flottant est un nombre stocké en deux parties, une mantisse et un exposant. La taille de la mantisse définit le nombre de chiffres significatifs, alors que la taille de l'exposant définit le plus grand nombre acceptable par la machine. Les opérations sur les réels sont plus lents que sur les entiers. Pour une addition par exemple, il faut d'abord décaler la mantisse pour égaliser les exposants puis faire l'addition. Les réels sont toujours signés. On peut par contre utiliser le spécificateur long pour des réels avec une précision accrue. On peut également utiliser le nom double au lieu de long float. Certains compilateurs acceptent même des long double (quadruple précision).
Tailles et plagestype
| taille (en bits)
| plage de valeurs
| char
| 8
| -128 à +127
| unsigned char
| 8
| 0 à 255
| short (short int)
| 16
| -32768 à 32767
| unsigned short
| 16
| 0 à 65535
| long (long int)
| 32
| -2.147.483.648 à 2.147.483.647
| unsigned long
| 32
| 0 à 4.294.967.295
| float
| 32
| -3.4e38 à 3.4e38 (7 chiffres significatifs)
| double (long float)
| 64
| -1.7e308 à 1.7e308 (15 chiffres significatifs)
| long double (non standard)
| 80 ou 128
| ça dépend
|
| |
|