Chaque variable a un type. Parmis les types les plus courants l'on trouve:
int : entier (standard, éventuellement négatif, compris entre deux bornes fixées)
short : entier court (l'intervalle des valeurs possibles est beaucoup plus restreint)
long : entier long (l'intervalle est plus grand que pour int)
float : nombre (éventuellement négatif) avec une virgule (la précision est limitée à quelques chiffres significatifs)
double : pareil que float mais avec une plus grande précision (c'est le type standard pour les nombres à virgules)
bool : booléen (valant soit true soit false)
char : un caractère (un seul), par exemple 'a' ou 'b' ou '9' ou '.'
Les entiers sont notés simplement (par exemple 2 ou 43) tandis que les nombres à virgule comme 3.14 ou 185.78342 doivent comporter un point (le symbole pour la virgule) pour être reconnus comme tels. Ainsi 4. est un double tandis que 4 est un int. Les caractères sont notés entre apostrophes.
On peut bien entendu ajouter à cette liste les pointeurs vers de telles variables, par exemple:
double* : pour un pointeur vers un double, ou un tableau de double
char* : chaîne de caractères. Il y a une syntaxe particulière pour les chaînes de caractères: char* chaine = "blabla"; (entre guillemets).
et de même:
double** : un pointeur vers un pointeur vers un double (c-à-d stockant l'adresse d'un pointeur vers un double), ou un pointeur vers un tableau de double, ou un tableau de tableaux de double (c-à-d un tableau de pointeurs vers des double)...
et ainsi de suite.