Voici quelques noms corrects :
A A1
n n_1 nombre_1
racine_carree Taxe_a_la_Valeur_Ajoutee
Et quelques noms incorrects :
1b (il commence par un chiffre)
nombre 1 (il comporte un espace)
racine_carrée (il comporte un caractère accentué)
nombre-1 (il comporte le signe -, qui est différent du signe _ )
Lorsque plusieurs opérateurs apparaissent dans une même expression,
il est nécessaire de savoir dans quel ordre ils sont mis en jeu. En C,
comme dans les autres langages, les règles de priorité sont "naturelles"
et rejoignent celles de l'algèbre traditionnelle.
L'opérateur unaire - (opposé) a la priorité la plus élevée. On trouve
ensuite, à un même niveau, les opérateurs *, / et %. Enfin, sur un dernier
niveau, apparaissent les opérateurs binaires + et -.
En cas de priorités identiques, les calculs s'effectuent de gauche
à droite.
Dans les quelques exemples suivants, les expressions à droite comportent
des parenthèses superflues, et sont équivalentes aux expressions de gauche.
a + b * c a
+ (b * c)
a * b + c % d (a
* b) + (c % d)
- c % d (-c)
% d
- a + c % d (-
a) + (c % d)
- a / - b + c
( (- a) / (- b) ) +c
- a / - (b + c) (-
a) / ( - (b + c) )
La notation décimale comporte un point (correspondant à notre virgule). La partie entière ou la partie décimale peuvent être omises (mais, bien sûr, pas toutes les deux en même temps !).
En voici quelques exemples corrects :
12.43 -0.38 -.38 4. .27
La notation exponentielle utilise la lettre e (ou E) pour introduire un exposant entier (puissance de 10), avec ou sans signe.
Voici quelques exemples corrects (les exemples d'une même ligne étant équivalents) :
4.25E4 4.25E+4
4.25e4
54.27E-32 542.7E-33 5427E-34
48e13
48.e13
48.0e13
Considérons une situation telle que :
La première ligne ne pose aucun problème : le compilateur détecte le début d'une instruction if. Comme à la suite de la condition il ne trouve pas de bloc d'instructions, il sait que la partie correspondant au cas VRAI ne comporte qu'une instruction. A la suite du premier printf, il ne trouve pas de mot else : il en conclut donc que l'instruction if s'achève là, autrement dit qu'elle ne comporte pas de else. L'instruction max=b; ne lui pose pas de problème particulier. En revanche, à la rencontre du else, le compilateur ne peut l'attribuer à aucune instruction if et il signale une erreur. Il aurait fallu écrire :
if(a<b)
{
printf("ordonne");
max=b;
}
else printf("non ordonne");
L'opérateur relationnel "= =", servant à tester l'égalité de deux expressions, ne doit pas être confondu avec l'opérateur d'affectation "=".
Il ne faut pas écrire :
if (a=3) printf("a est égal à trois");
Car lorsque le compilateur va évaluer l'expression a=3, il va d'abord affecter 3 à a, et le résultat de cette affectation sera toujours vrai. Donc "a=3" est toujours évalué à VRAI.
Il faut donc écrire :
if (a= =3) printf("a est égal à trois");
Il faut veiller à ne pas utiliser la variable qui sert de compteur au for à l'intérieur du bloc d'instructions de ce for.
Il est possible de mettre n'importe quel signe entre les délimitateurs a l'exception du délimitateur de fin de commentaires */
Exemple de commentaire faux :
/* Ceci est /*un commentaire*/ faux */
La fonction main() ainsi que toutes les instructions du C ont besoins d'être écrites en minuscule
Exemples de fautes :
MAIN()
Main()
MaIn()
Les opérateurs d'incrémentation (++) et de décrémentation (--) peuvent être placés avant ou après la variable à incrémenter (ou a décrémenter ).
Un opérateur de post-incrémentation ou de post-décrémentation entraîne
que son opérande est d'abord utilisée, puis seulement alors incrémentée
ou décrémentée.
Inversement :
Un opérateur de pré-incrémentation ou de pré-décrémentation entraîne
que son opérande est incrémentée ou décrémentée avant d'être utilisée.
Exemple :
Valeur de x | Valeur de y | Instruction | Valeur de x après instruction | Valeur de y après instruction |
x=1 | y=0 | y=x++ | x=2 | y=1 |
x=1 | y=0 | y=x-- | x=0 | y=1 |
x=1 | y=0 | y=++x | x=2 | y=2 |
x=1 | y=0 | y=--x | x=0 | y=0 |
Il est courant de substituer par inadvertance = par ==, car tant d'autres langages utilisent = pour les comparaisons. De même qu'il est facile d'échanger & et &&, ou | et ||, surtout parce que les opérateurs & et | en C sont différents de leurs équivalents dans d'autres langages.
Une expression est estimée fausse si elle vaut 0, et est estimée vraie pour toute autre valeur.
Exemple :
-17654 -12 -1 1 23 263846 sont estimées VRAI car elles sont différentes de 0
seul 0 est estimé FAUX, car seule la valeur 0 correspond à une expression fausse.