Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Λάθη Σύνταξη σε C + +

Ένα από το πιο απλό και συχνά πιο δύσκολο να βρουν τα λάθη στον προγραμματισμό είναι ένα συντακτικό λάθος . Όπως κωδικό μεγαλώνει σε πολυπλοκότητα και το μέγεθος , τα μικρά λάθη στο συντακτικό μπορεί να παρουσιαστούν και να προκαλέσει πονοκεφάλους . Σε μια λακωνική και απλή γλώσσα προγραμματισμού , όπως η C + + , σύνταξη παίζει σημαντικό ρόλο στο πώς λειτουργεί η γλώσσα . Μερικά κοινά συντακτικά λάθη σε C + + προέρχονται από ξεχασμένες ή άστοχες σύμβολα ( όπως ερωτηματικά , παρενθέσεις και αγκύλες ) , χρησιμοποιώντας λάθος υπό όρους δηλώσεις σε δομές loop , αναθέτοντας εσφαλμένες τύπους δεδομένων σε μεταβλητές και κατάχρηση δείκτες και αναφορές . Κατάχρηση Βασικά Σύμβολα
Η

C + + χρησιμοποιεί ένα σύνολο συμβόλων να εκπροσωπεί ορισμένες προϋποθέσεις . Το ερωτηματικό ( ;) , για παράδειγμα , σημαίνει το τέλος μιας γραμμής κώδικα . Μια γραμμή κώδικα πρέπει να τελειώνει με ένα ερωτηματικό , ή θα υπάρξει ένα σφάλμα . Επιπλέον , μπλοκ κώδικα που αποτελούν μέρος του "αν " δηλώσεις των βρόχων πρέπει να κατοικούν μέσα σγουρά τιράντες . Αυτό το παράδειγμα δείχνει πως αυτά τα λάθη θα μπορούσε να καταλήξει σε κωδικό :

ενώ ( 1 )

( //μπλοκ του κώδικα πρέπει να εμφανίζονται σε αγκύλες , δεν παρένθεση

int i = 1 ?

εάν ( i % 2 == 0 ) {


εκτύπωσης i //όχι ερωτηματικό για να δείξει τέλος της δήλωσης

}

i + + ?

}
εικόνων όρους καταστάσεις Loops
Η

Βρόχος δομές σε C ​​+ + απαιτεί όρους δηλώσεις που επιστρέφουν Σωστό ή Λάθος αξίες που καθορίζουν εάν ή όχι ο βρόχος θα συνεχίσει ή όχι. Ωστόσο, η προϋπόθεση του βρόχου πρέπει να παράγει πραγματικά μια τιμή αλήθειας , είτε μέσω μια αριθμητική τιμή ή μέσω σύγκρισης των τιμών . Περαιτέρω, διάφορα βρόχοι απαιτούν διαφορετικές πληροφορίες . το ακόλουθο παράδειγμα εμφανίζει δύο λάθη που έγιναν χρησιμοποιώντας ένας βρόχος "while" και " για " βρόχο :

int i = 0 ?

ενώ ( 1 ) //1 ισούται αλήθεια σε C ​​+ + , αυτός ο βρόχος θα τρέξει στο άπειρο

{

για ( i ? i <= 5 ? i - ) //αυτός ο βρόχος δεν θα σταματήσει ποτέ , γιατί ποτέ δεν θα είναι μεγαλύτερη από 5

{

/* κάνουμε πράγματα * /

} }



Η Ασυμφωνία μεταξύ Μεταβλητή Τύπος και Τύπος δεδομένων
Η

C + + είναι μια έντονα δακτυλογραφημένη γλώσσα, που σημαίνει ότι οι προγραμματιστές πρέπει να δηλώσουν τον τύπο μιας μεταβλητής κατά τη δήλωση της μεταβλητής . μία μεταβλητή τύπου « ακέραιος » πρέπει να περιέχει έναν ακέραιο αριθμό και την αναθέσουν οποιοδήποτε άλλο είδος θα δημιουργήσει ένα σφάλμα . Σε αυτό το παράδειγμα , ορισμένες μεταβλητές του Τα διάφορα είδη έχουν τύπους δεδομένων που δεν ταιριάζουν :

int i = 2,5 //ανάθεση μιας κινητής υποδιαστολής σε ακέραιο

char h = " Hello" //ανάθεση ενός string σε ένα χαρακτήρα μεταβλητή

int j = " HI " //ανάθεση ενός string σε μια μεταβλητή ακέραιο
εικόνων Δείκτες και Αναφορές
Η

δείκτες είναι οι τύποι δεδομένων που αναφέρονται στο μια διεύθυνση στη μνήμη αντί να κατέχουν τα δεδομένα . Λόγω αυτής , δείκτες ουσιαστικά " σημείο για να " ένα μπλοκ της μνήμης , αντί να κατέχουν άμεσα τα δεδομένα. με τον όρο " dereferencing " το δείκτη ( χρησιμοποιώντας το σύμβολο "*" ) , ο προγραμματιστής μπορεί να έχει πρόσβαση . τα δεδομένα σε αυτή την μνήμη Ωστόσο , η διαφορά μεταξύ του δείκτη και την αξία που δείχνει να μπορεί να προκαλέσει σύγχυση , όπως στο ακόλουθο παράδειγμα :

int i = 3 ?

int * j = &i; //j τώρα δείχνει προς τη διεύθυνση του i

j = i ? //j τώρα δείχνει στη διεύθυνση μνήμης 3 , δεν περιέχει την τιμή 3

* j = i ? //ΤΩΡΑ είναι η μνήμη που αναφέρεται από j περιέχει την τιμή , 3 φωτογραφίες
Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα