Πίνακες C (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθετε να εργάζεστε με πίνακες. Θα μάθετε να δηλώνετε, να αρχικοποιείτε και να έχετε πρόσβαση σε στοιχεία ενός πίνακα με τη βοήθεια παραδειγμάτων.

Ένας πίνακας είναι μια μεταβλητή που μπορεί να αποθηκεύσει πολλές τιμές. Για παράδειγμα, εάν θέλετε να αποθηκεύσετε 100 ακέραιους αριθμούς, μπορείτε να δημιουργήσετε έναν πίνακα για αυτόν.

 int data(100); 

Πώς να δηλώσετε έναν πίνακα;

 dataType arrayName (arraySize); 

Για παράδειγμα,

 πλωτήρα (5) ·

Εδώ, δηλώσαμε έναν πίνακα, σήμα, τύπου κυμαινόμενου σημείου. Και το μέγεθός του είναι 5. Δηλαδή, μπορεί να διατηρήσει 5 τιμές κινητής υποδιαστολής.

Είναι σημαντικό να σημειωθεί ότι το μέγεθος και ο τύπος ενός πίνακα δεν μπορούν να αλλάξουν μόλις δηλωθεί.

Πρόσβαση σε στοιχεία συστοιχίας

Μπορείτε να αποκτήσετε πρόσβαση σε στοιχεία ενός πίνακα με δείκτες.

Ας υποθέσουμε ότι δηλώσατε ένα σημάδι πίνακα όπως παραπάνω. Το πρώτο στοιχείο είναι το σήμα (0), το δεύτερο στοιχείο είναι το σήμα (1) και ούτω καθεξής.

Λίγες βασικές σημειώσεις :

  • Οι πίνακες έχουν το 0 ως το πρώτο ευρετήριο, όχι το 1. Σε αυτό το παράδειγμα, το σύμβολο (0) είναι το πρώτο στοιχείο.
  • Εάν το μέγεθος ενός πίνακα είναι n, για πρόσβαση στο τελευταίο στοιχείο, χρησιμοποιείται το n-1ευρετήριο. Σε αυτό το παράδειγμα, σημειώστε (4)
  • Ας υποθέσουμε ότι η αρχική διεύθυνση mark(0)είναι 2120d . Στη συνέχεια, η διεύθυνση της mark(1)θέλησης θα είναι 2124d . Ομοίως, η διεύθυνση mark(2)θα είναι 2128d και ούτω καθεξής.
    Αυτό συμβαίνει επειδή το μέγεθος του a floatείναι 4 byte.

Πώς να αρχικοποιήσετε έναν πίνακα;

Είναι δυνατή η προετοιμασία ενός πίνακα κατά τη δήλωση. Για παράδειγμα,

 int mark(5) = (19, 10, 8, 17, 9);

Μπορείτε επίσης να προετοιμάσετε έναν πίνακα όπως αυτό.

 int mark() = (19, 10, 8, 17, 9);

Εδώ, δεν έχουμε προσδιορίσει το μέγεθος. Ωστόσο, ο μεταγλωττιστής γνωρίζει ότι το μέγεθός του είναι 5 καθώς το αρχίζουμε με 5 στοιχεία.

Εδώ,

 το σήμα (0) είναι ίσο με 19 σήμα (1) είναι ίσο με 10 σήμα (2) είναι ίσο με 8 σήμα (3) είναι ίσο με 17 σήμα (4) είναι ίσο με 9

Αλλαγή τιμής στοιχείων Array

 int mark(5) = (19, 10, 8, 17, 9) // make the value of the third element to -1 mark(2) = -1; // make the value of the fifth element to 0 mark(4) = 0; 

Στοιχεία συστοιχίας εισόδου και εξόδου

Δείτε πώς μπορείτε να λάβετε στοιχεία από τον χρήστη και να την αποθηκεύσετε σε ένα στοιχείο πίνακα

 // take input and store it in the 3rd element scanf("%d", &mark(2)); // take input and store it in the ith element scanf("%d", &mark(i-1)); 

Δείτε πώς μπορείτε να εκτυπώσετε ένα μεμονωμένο στοιχείο ενός πίνακα.

 // print the first element of the array printf("%d", mark(0)); // print the third element of the array printf("%d", mark(2)); // print ith element of the array printf("%d", mark(i-1)); 

Παράδειγμα 1: Είσοδος / έξοδος συστοιχίας

 // Program to take 5 values from the user and store them in an array // Print the elements stored in the array #include int main() ( int values(5); printf("Enter 5 integers: "); // taking input and storing it in an array for(int i = 0; i < 5; ++i) ( scanf("%d", &values(i)); ) printf("Displaying integers: "); // printing elements of an array for(int i = 0; i < 5; ++i) ( printf("%d", values(i)); ) return 0; ) 

Παραγωγή

 Εισαγάγετε 5 ακέραιους αριθμούς: 1 -3 34 0 3 Εμφάνιση ακέραιων αριθμών: 1 -3 34 0 3 

Εδώ, χρησιμοποιήσαμε έναν forβρόχο για να πάρουμε 5 εισόδους από τον χρήστη και να τις αποθηκεύσουμε σε έναν πίνακα. Στη συνέχεια, χρησιμοποιώντας έναν άλλο forβρόχο, αυτά τα στοιχεία εμφανίζονται στην οθόνη.

Παράδειγμα 2: Υπολογισμός μέσου όρου

 // Program to find the average of n numbers using arrays #include int main() ( int marks(10), i, n, sum = 0, average; printf("Enter number of elements: "); scanf("%d", &n); for(i=0; i  

Output

 Enter n: 5 Enter number1: 45 Enter number2: 35 Enter number3: 38 Enter number4: 31 Enter number5: 49 Average = 39 

Here, we have computed the average of n numbers entered by the user.

Access elements out of its bound!

Suppose you declared an array of 10 elements. Let's say,

 int testArray(10);

You can access the array elements from testArray(0) to testArray(9).

Now let's say if you try to access testArray(12). The element is not available. This may cause unexpected output (undefined behavior). Sometimes you might get an error and some other time your program may run correctly.

Hence, you should never access elements of an array outside of its bound.

Multidimensional arrays

In this tutorial, you learned about arrays. These arrays are called one-dimensional arrays.

In the next tutorial, you will learn about multidimensional arrays (array of an array).

ενδιαφέροντα άρθρα...