< Manipuler des valeurs | TutoCFrench | Les opérateurs binaires >
Notions :
Dans la leçon précédente, nous avons brièvement vu quelques types de données. Ce chapitre passe en revue les autres types fondamentaux.
char, qui sert à stocker des caractères imprimables, stocke en réalité un petit entier codé sur un octet. La table de correspondance entre ces petits entiers et les caractères imprimables s'appelle la table des caractères ASCII. Par exemple, le caractère ASCII 'a' a pour valeur ASCII 97.
Il est donc tout à fait correct d'écrire une expression comme 'a' + 2 puisque 'a' est en réalité un entier.
short int pour stocker des petits entiers.
int pour stocker des entiers.
long int pour stocker des entiers plus grands.
float et double pour stocker des nombres réels.
Remarque : il n'existe pas de type "chaîne de caractères". Pour ce faire, on utilise les tableaux.
Les types, comme int sont signés par défaut, ce qui signifie que ce type permet de stocker des valeurs positives et négatives.
Le mot-clef unsigned permet de définir un type comme étant non-signé, c'est à dire que la variable pourra stocker uniquement des valeurs positives.
Sur certaines architectures, les char sont non-signés par défaut ! Il est possible de les signer avec la directive signed.
La directive const permet d'empêcher la modification d'une variable donnée. Le contrôle se fait au moment de la compilation :
const int i = 70; /* i ne pourra etre modifie */ i++; /* interdit ! */
Notions avancées concernant les pointeurs:
const char *p; /* pointeur sur constante */ char * const p; /* pointeur constant */
| Type | Octets | Portée |
|---|---|---|
| char | 1 | -128 à +127 |
| short int | 2 | -32768 à +32767 |
| int | 4 | -2 147 483 648 à +2 147 483 647 |
| long int | 8 | -4294967296 à +4294967295 |
| unsigned char | 1 | 0 +255 |
| unsigned short int | 2 | 0 à +65535 |
| unsigned int | 4 | 0 à +4 294 967 295 |
| unsigned long int | 8 | |
| float | 4 | |
| double | 8 |
Une conversion explicite d'une valeur stockée dans une variable est faite de la façon suivante :
(nouveau_type) variable;
Par exemple :
int a = 3, b = 6; float c; c = (float) a + (float) b;
Mais il existe aussi un certain nombre de conversions implicites :
int et un float, l'int est converti en un float
int, il y a aussi une conversion de la valeur dans ce type (ce qui peut altèrer le résultat)
Exemple :
int c; float pi = 3.14159, r = 4.21; c = pi * r;
Un nombre utilisé dans une expression s'appelle une constante littérale. Par défaut, elle est de type int mais il est possible d'utiliser des constantes littérales de n'importe quel autre type :
| Exemple | Type |
|---|---|
| 5 | int |
| 5u ou 5U | unsigned |
| 5l ou 5L | long |
| 5ul | unsigned long |
| 05 | octal |
| 0x5 | hexadecimal |
| 5.f | float |
| 5. | double |
Exemple :
#include<stdio.h>
int main()
{
unsigned short a=65535;
a++;
printf("%d\n", a);
return 0;
}
#include <stdio.h>
int main()
{
int a;
printf("> ");
scanf("%d", &a);
printf("%X\n", a);
return 0;
}
#include <stdio.h>
int main()
{
int a;
printf("> ");
scanf("%x", &a);
printf("%d\n", a);
return 0;
}
< Manipuler des valeurs | TutoCFrench | Les opérateurs binaires >