Uno dei più semplici e spesso più difficili da trovare errori nella programmazione è un errore di sintassi . Come codice cresce in complessità e le dimensioni , piccoli errori di sintassi possono sorgere e causare mal di testa . In un linguaggio di programmazione conciso e diretto , come C + + , la sintassi svolge un ruolo importante nel modo in cui funziona il linguaggio . Alcuni errori di sintassi comuni in C + + venire da simboli dimenticati o fuori luogo (come punto e virgola , parentesi e staffe ) , usando istruzioni condizionali non corrette in strutture iterative , dei tipi di dati non corretti per le variabili , e abusando puntatori e riferimenti . L'uso improprio dei simboli di base
C + + utilizza una serie di simboli per rappresentare determinate condizioni. La virgola ( ;) , per esempio , indica la fine di una riga di codice . Una riga di codice deve terminare con un punto e virgola , o ci sarà un errore. Inoltre , i blocchi di codice che fanno parte di "se" le dichiarazioni di loop devono risiedere all'interno di parentesi graffe . Questo esempio mostra come questi errori potrebbero venire in codice :
while (1 ) per
( //blocchi di codice deve apparire tra parentesi graffe , non parentesi
int i = 1 ;
if (i % 2 == 0 ) {
stampa i //nessun punto e virgola alla fine di mostrare dichiarazione
} < br >
i + + ; }
istruzioni condizionali nelle Loops
Looping strutture in C + + richiedono istruzioni condizionali che restituiscono valori true o false che determinano se il ciclo continuerà o meno. Tuttavia, la condizione del ciclo deve effettivamente produrre un valore di verità , sia attraverso un valore numerico o attraverso un confronto di valori. Inoltre , i vari loop richiedono informazioni diverse. l'esempio seguente mostra due errori commessi utilizzando un ciclo "while " e " per " loop :
int i = 0;
while ( 1 ) //1 è uguale a true in C + + , questo ciclo verrà eseguito a
infinito
{
per (i , i < = 5; i - ) //questo ciclo sarà mai fermarsi , perché non sarò mai maggiore di 5
{
< p > /* fare cose * /
}
}
mancata corrispondenza tra tipo di variabile e il tipo di dati
C + + è un linguaggio fortemente tipizzato , il che significa che i programmatori devono dichiarare il tipo di una variabile quando si dichiara la variabile . una variabile di tipo "integer" deve contenere un numero intero, e l'assegnazione di alcun altro tipo creerà un errore . In questo esempio , alcune variabili di vari tipi sono assegnati i tipi di dati che non corrispondono a :
int i = 2.5 //assegnazione di un decimale mobile in un intero
char h = " Ciao " //assegnazione di una stringa di un carattere variabile
int j = " HI " //assegnazione di una stringa in un intero variabile
Puntatori e riferimenti
puntatori sono tipi di dati che si riferiscono a un indirizzo nella memoria piuttosto che mantenere dati . causa di questo, puntatori essenzialmente " punto a" un blocco di memoria , piuttosto che mantenere direttamente quei dati . By " dereferencing " il puntatore ( utilizzando il simbolo " * " ) , il programmatore può accedere . dei dati in memoria che , tuttavia, la differenza tra un puntatore e il valore che i punti di può causare confusione , come nel seguente esempio :
int i = 3;
int * j = &I; //j ora punta all'indirizzo di i
j = i; //j ora punta all'indirizzo di memoria 3 , non contiene il valore 3
* j = i //Ora il riferimento alla memoria da j contiene il valore 3