Un des plus simples et souvent les plus difficiles à trouver des erreurs dans la programmation est une erreur de syntaxe. Comme le code se développe dans la complexité et la taille, les petites erreurs de syntaxe peuvent surgir et causer des maux de tête. Dans un langage de programmation laconique et directe tels que C ++, la syntaxe joue un rôle important dans la façon dont la langue fonctionne. Certaines erreurs de syntaxe communes dans C ++ proviennent de symboles oubliés ou égarés (tels que des points-virgules, les parenthèses et entre parenthèses), en utilisant des instructions conditionnelles incorrectes dans des structures en boucle, attribuer des types de données incorrectes à des variables, et abusant des pointeurs et des références.
Détournement des symboles de base
C ++ utilise un ensemble de symboles pour représenter certaines conditions. Le point-virgule (;), par exemple, représente la fin d'une ligne de code. Une ligne de code doit se terminer par un point-virgule, ou il y aura une erreur. En outre, des blocs de code qui font partie de "if" de boucles doivent résider à l'intérieur des accolades. Cet exemple montre comment ces erreurs peuvent arriver dans le code:
tandis que (1)
(// Blocs de code doivent apparaître dans les accolades, pas entre parenthèses
int i = 1;
if (i% 2 == 0)
{
print i // aucune virgule pour montrer fin de l'instruction
}
i ++;
}
Instructions conditionnelles dans Loops
Looping structures en C ++ nécessitent des instructions conditionnelles qui renvoient des valeurs Vrai ou faux qui déterminent si oui ou non la boucle continuera ou non. Cependant, la condition de la boucle doit effectivement produire une valeur de vérité, soit par une valeur numérique, soit par une comparaison des valeurs. En outre, différentes boucles exigent des informations différentes. L'exemple suivant affiche deux erreurs faites en utilisant un "tout" boucle et une boucle "for":
int i = 0;
tandis que (1) // 1 est égal à vrai dans C ++, cette boucle se déroulera à l'infini
{
(i; i <= 5; i--) // cette boucle ne sera jamais arrêter parce que je ne serai jamais plus de 5
{
/ Faire des choses /
}
}
Incompatibilité entre le type variable et Type de données
C ++ est un langage fortement typé, ce qui signifie que les programmeurs doivent déclarer le type d'une variable lors de la déclaration de la variable. Une variable de type "integer" doit contenir un nombre entier, et en lui attribuant un autre type va créer une erreur. Dans cet exemple, certaines variables de différents types sont affectées à des types de données qui ne correspondent pas:
int i = 2,5 // assignant une virgule flottante à un nombre entier
omble h = "Bonjour" // attribution d'une chaîne à une variable de caractères
int j = "HI" // attribution d'une chaîne à une variable entière
Pointeurs et références
Les pointeurs sont des types de données qui se réfèrent à une adresse en mémoire plutôt que de tenir des données. À cause de cela, les pointeurs essentiellement "point à" un bloc de mémoire, plutôt que de détenir directement ces données. Par "déréférencement" le pointeur (en utilisant le symbole "*"), le programmeur peut accéder aux données dans cette mémoire. Cependant, la différence entre un pointeur et la valeur il pointe peut causer de la confusion, comme dans l'exemple suivant:
int i = 3;
int * j = & i; // J pointe maintenant à l'adresse de i
j = i; // J pointe maintenant à l'adresse de la mémoire 3, il ne contient pas la valeur 3
* J = i; // NOW la mémoire référencée par j contient la valeur 3