Ett av de enklaste och ofta svårast att hitta fel i programmering är ett syntaxfel . Som koden växer i komplexitet och storlek , kan små fel i syntaxen dyka upp och orsaka huvudvärk . I ett bryskt och okomplicerad programmeringsspråk såsom C + + , spelar syntax en viktig del i hur språket fungerar . Några vanliga syntaxfel i C + + kommer från bortglömda eller felplacerade symboler ( t.ex. semikolon , parenteser och konsoler ) , med hjälp av felaktiga villkorssatser i looping konstruktioner , tilldela felaktiga datatyper för variabler , och missbrukar pekare och referenser . Missbruk av Basic Symboler
C + + använder en uppsättning av symboler för att representera vissa villkor. Semikolon ( ;) , exempelvis , anger slutet av en rad kod . En kodrad måste sluta med ett semikolon , eller kommer det att finnas ett fel . Dessutom block av kod som är en del av " om " uttalanden av slingor måste ligga inne curly- hängslen . Detta exempel visar hur dessa fel kan komma upp i registret :
medan ( 1 ) katalog
( //block av kod måste visas i hängslen , inte parentes
int i = 1 ;
if (i % 2 == 0 ) katalog
{
print i //inget semikolon för att visa slutet på meddelandet
}
i + + ;
}
villkorssatser i loopar
Looping strukturer i C + + kräver villkorssatser som returnerar Sant eller falskt värden som bestämmer huruvida slingan kommer att fortsätta eller inte . dock måste slingan villkoret faktiskt tillverkar en sannings värde , antingen genom ett numeriskt värde eller genom en jämförelse av värden . Dessutom olika slingor kräver olika information . följande exempel visar två misstag med en " tag " loop och ett " efter " loop :
int i = 0 ;
while ( 1 ) //1 är lika sant i C + + , kommer denna slinga körs till oändlighet
{
för (i , i < = 5; i - ) //denna slinga kommer aldrig att sluta eftersom jag aldrig kommer att vara större än 5
{
/* gör saker * /
}
} Addera ditt obalans mellan Variable Type och datatyp
C + + är ett starkt skrivit språk , vilket innebär att programmerare måste deklarera en variabel är typ när deklarera variabeln . en variabel av typen " integer " måste innehålla ett heltal , och tilldela det någon annan typ skapar ett fel . i detta exempel vissa variabler olika typer tilldelas datatyper som inte matchar :
int i = 2,5 //tilldela en flytande decimaltal till ett heltal
röding h = " Hej " //tilldela en sträng till ett tecken variabel
int j = " HI " //tilldela en sträng till en heltalsvariabel
Pekare och referenser
Pekare är datatyper som hänvisar till en adress i minnet istället för att hålla data. på grund av detta , pekare huvudsak " pekar på " ett block av minne , snarare än direkt innehar dessa uppgifter . med " dereferencing " pekaren ( med " * " symbolen ) , kan programmeraren åtkomst . datan i detta minne dock skillnaden mellan en pekare och värde den pekar på kan orsaka förvirring , som i följande exempel :
int i = 3 ;
int * j = &i; //j pekar nu på adressen jag
j = i; //j nu pekar till minnet adress 3 , betyder inte innehåller värdet 3
* j = i , //NU minnet refereras av j innehåller värdet 3