Ένας πίνακας είναι μια δομή δεδομένων που χρησιμοποιείται για την αποθήκευση διαδοχικών στοιχείων του ίδιου τύπου δεδομένων. Η θέση ενός στοιχείου στην ακολουθία ονομάζεται ευρετήριο. Οι δείκτες ξεκινούν από 0 έως (n-1).
Σε αυτό το άρθρο, θα μάθετε πώς να χρησιμοποιείτε πίνακες στο C. Οι περισσότερες από τις έννοιες εδώ περνούν στις περισσότερες άλλες γλώσσες προγραμματισμού, οπότε φροντίστε να τις λάβετε υπόψη.
Καθορισμός συστοιχιών
Για να ορίσετε έναν πίνακα, γράψτε τον τύπο δεδομένων του, ακολουθούμενο από το όνομα του πίνακα και τις αγκύλες:
int ηλικία [8];
Μέσα στις αγκύλες είναι ο αναμενόμενος αριθμός στοιχείων που θα λάβει ο πίνακας. Εάν πρέπει να δηλώσετε δύο πίνακες ταυτόχρονα, μπορείτε να το κάνετε όπως παρακάτω. Αξίζει να αναφερθεί ότι η δήλωση ξεχωριστά είναι ο προτιμώμενος τρόπος.
int ηλικία [8], ύψος [8];
Είναι επίσης δυνατό να δηλώσετε έναν πίνακα όπως παρακάτω:
int [8] ηλικία?
Η παραπάνω σύνταξη θα σήμαινε αυτό ηλικία είναι ένας δείκτης σε έναν πίνακα τύπου int. Αν και μπορείτε να χρησιμοποιήσετε τη "σύνταξη δείκτη", προτιμάται η πρώτη.
Σχετίζεται με: Πώς να εμφανίσετε τον πίνακα πολλαπλασιασμού ενός αριθμού χρησιμοποιώντας Python, C ++, JavaScript και C
Μερικές φορές, μπορεί να μην γνωρίζετε πόσα στοιχεία περιμένετε να έχει η συστοιχία σας. Σε μια τέτοια περίπτωση, θα πρέπει να δηλώσετε τον πίνακα χωρίς τον αριθμό των στοιχείων. Δείτε το παρακάτω παράδειγμα:
int ηλικία [];
Λειτουργίες σε Arrays
Για να αναφέρετε ένα στοιχείο πίνακα, γράψτε το όνομα του πίνακα ακολουθούμενο από το ευρετήριό του σε τετράγωνες αγκύλες (π. ηλικία [5]). Μπορείτε επίσης να χρησιμοποιήσετε μεταβλητές μέσα στις αγκύλες:
ηλικία [x+y]
Πρέπει να διασφαλίσετε ότι ο υπολογισμός αυτών των μεταβλητών βρίσκεται στο εύρος 0 έως (n-1). Διαφορετικά, θα λάβετε ένα σφάλμα μεταγλώττισης.
Αρχικοποίηση
Τα στοιχεία πίνακα μπορούν να δοθούν κατά τη δήλωση ή αργότερα στο πρόγραμμα. Αυτή η ενέργεια είναι γνωστή ως αρχικοποίηση αφού ο πίνακας αρχικά έχει μηδενικές τιμές.
Δείτε το παρακάτω παράδειγμα. Εκτυπώνει την τιμή ενός στοιχείου και τον δείκτη του στον πίνακα. Η γραμμή 5 χρησιμοποιεί μια λίστα προετοιμασίας για την προετοιμασία του ακέραιου πίνακα.
#περιλαμβάνω
int main (άκυρο) {
printf ("%s%11s
"," Στοιχείο "," Αξία ");
int n [4] = {1, 4, 9, 16};
// στοιχεία πίνακα εξόδου σε μορφή πίνακα
για (size_t i = 0; i <4; ++ θ) {
printf ("%5u%10d
", i, n [i]);
}
}
Παραγωγή:
Αξία στοιχείου
0 1
1 4
2 9
3 16
Χρήση συστοιχιών για αποθήκευση συμβολοσειρών
Οι πίνακες μπορούν επίσης να χρησιμοποιηθούν για την αποθήκευση συμβολοσειρών, όχι μόνο ακέραιων. Όταν χρησιμοποιείται με αυτόν τον τρόπο, θυμηθείτε να συμπεριλάβετε μεμονωμένα εισαγωγικά για κάθε στοιχείο στη λίστα προετοιμασίας.
καρπό καρπού [] = ['b', 'e', 'r', 'r', 'y', '\ 0'];
Παρατηρήστε ότι το απανθρακώνω χρησιμοποιείται ο τύπος δεδομένων. Μια χορδή κυριολεκτικά αποτελείται στην πραγματικότητα από μεμονωμένους χαρακτήρες και γι 'αυτό βλέπετε απανθρακώνω.
Σχετίζεται με: Πώς να μάθετε προγραμματισμό C ++: 6 ιστότοποι για να ξεκινήσετε
Ο πίνακας που εμφανίζεται τελειώνει με μια ακολουθία διαφυγής (\0). Αυτός είναι ένας χαρακτήρας τερματισμού συμβολοσειράς που ονομάζεται μηδενικός χαρακτήρας. Πρέπει πάντα να το συμπεριλαμβάνετε κατά την προετοιμασία μιας λίστας πίνακα.
Υπάρχει στην πραγματικότητα ένας απλούστερος τρόπος για να ξεκινήσετε έναν πίνακα χαρακτήρων. Δείξαμε πρώτα την προηγούμενη προσέγγιση, ώστε να γνωρίζετε ότι μια συστοιχία χαρακτήρων έχει πάντα έναν ιδιαίτερο χαρακτήρα λήξης (\0). Είναι συνηθισμένο σφάλμα για αρχάριους προγραμματιστές να έχουν το μέγεθος του πίνακα λιγότερο κατά ένα, ξεχνώντας το τελευταίο στοιχείο (\0).
char string1 [5] = "Κωδικός";
Ας υποθέσουμε ότι πρέπει να λάβετε την είσοδο χρήστη και να την αποθηκεύσετε σε έναν πίνακα. Μπορείτε να χρησιμοποιήσετε την τυπική λειτουργία βιβλιοθήκης scanf για αυτό.
Ωστόσο, πρέπει να καθορίσετε τον αριθμό των χαρακτήρων που πρέπει να περιμένει η συνάρτηση. Αυτό είναι επειδή scanf δεν ελέγχει το μέγεθος του πίνακα και μπορεί να γράψει δεδομένα σε διευθύνσεις πέρα από τον πίνακα, προκαλώντας υπερχείλιση buffer.
Χρησιμοποιήστε το %μικρό προσδιοριστής μετατροπής για τον καθορισμό της μέγιστης αναμενόμενης εισόδου. ο scanf Η λειτουργία θα διαβάσει όλους τους χαρακτήρες που έχουν εισαχθεί έως ότου βρεθεί κενό, καρτέλα, νέα γραμμή ή ένδειξη τέλους αρχείου.
Προώθηση του προγραμματισμού C σας
Οι πόροι που χρησιμοποιείτε για να μάθετε είναι εξίσου σημαντικοί με τον ζήλο σας για μάθηση. Η εκμάθηση χωρίς καλή πρακτική θα κάνει το ταξίδι προγραμματισμού σας δύσκολο.
Η Γ είναι μια ιδιαίτερα απαιτητική γλώσσα για μάθηση, καθώς δεν είναι αντικειμενοστρεφής. Ευτυχώς, έχουμε πολλούς πόρους για να σας βοηθήσουμε να μάθετε τον προγραμματισμό C.
Θα θέλατε ποτέ να γνωρίζετε πώς να εκτελείτε βασικό προγραμματισμό σε C; Τώρα μπορείτε χάρη σε αυτό το πακέτο εκπαίδευσης.
Διαβάστε Επόμενο
- Προγραμματισμός
- Γ Προγραμματισμός
- Προγραμματισμός
- Γλώσσες προγραμματισμού
Ο Jerome είναι Staff Writer στο MakeUseOf. Καλύπτει άρθρα σχετικά με τον Προγραμματισμό και το Linux. Είναι επίσης λάτρης των κρυπτογράφησης και παρακολουθεί πάντα τη βιομηχανία κρυπτογράφησης.
Εγγραφείτε στο newsletter μας
Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για εγγραφή