Gli errori di sintassi in C ++

July 12

Uno dei più semplici e spesso 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 concisa e diretta, come C ++, la sintassi svolge un ruolo importante nel modo in cui funziona la lingua. Alcuni errori di sintassi comuni in C ++ provengono da simboli dimenticati o fuori luogo (ad esempio, punti e virgola, parentesi e parentesi), utilizzando istruzioni condizionali non corrette in strutture di ciclo, dei tipi di dati non corretti alle variabili, e abusando puntatori e riferimenti.

L'uso improprio dei simboli di base

C ++ utilizza un insieme di simboli per rappresentare determinate condizioni. La virgola (;), per esempio, indica la fine di una linea di codice. Una linea di codice deve terminare con un punto e virgola, o ci sarà un errore. Inoltre, blocchi di codice che fanno parte di "se" dichiarazioni di loop devono risiedere all'interno di parentesi graffe. Questo esempio mostra come questi errori potrebbero venire in codice:

while (1)

(// Blocchi di codice devono comparire in parentesi graffe, non parentesi

int i = 1;

if (i% 2 == 0)

{

I // stampa senza virgola per mostrare fine della dichiarazione

}

i ++;

}

Istruzioni condizionali in Loops

Looping strutture in C ++ richiedono istruzioni condizionali che restituiscono valori true o false che determinano o meno il ciclo continuerà o no. Tuttavia, la condizione del ciclo deve effettivamente produrre un valore di verità, tramite un valore numerico o attraverso un confronto dei valori. Inoltre, diversi cicli 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 vero in C ++, questo ciclo verrà eseguito all'infinito

{

per (i; i <= 5; i--) // questo ciclo non sarà mai smettere perché non sarò mai superiore a 5

{

/ Fare cose /

}

}

Mancata corrispondenza tra il tipo variabile e 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 assegnando qualsiasi altro tipo creerà un errore. In questo esempio, alcune variabili di vari tipi sono assegnati tipi di dati che non corrispondono:

int i = 2.5 // assegnazione di un decimale mobile in un intero

char h = "Ciao" // assegnazione di una stringa in una variabile di carattere

int j = "HI" // assegnazione di una stringa a una variabile intera

Puntatori e riferimenti

I puntatori sono i tipi di dati che si riferiscono a un indirizzo nella memoria piuttosto che mantenere i dati. A causa di questo, puntatori essenzialmente "punto" un blocco di memoria, piuttosto che mantenere direttamente che dati. Con "dereferencing" il puntatore (utilizzando il simbolo "*"), il programmatore può accedere ai dati in tale memoria. Tuttavia, la differenza tra un puntatore e il valore a cui punta può causare confusione, come il 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 la memoria a cui fa riferimento j contiene il valore 3