Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C

Σχετικά έγγραφα
Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (Programming in the large)

ΕΙΣΑΓΩΓΗ ΣΤΟN ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Προγραμματισμός Συστημάτων

Προγραμματισμός Ι (ΗΥ120)

Δομημένος Προγραμματισμός

ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΛΟΓΙΣΜΙΚΟΥ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Σε γενικές γραμμές, είναι καλή πρακτική να γράϕουμε προγράμματα C που αποτελούνται από πολλές και μικρές συναρτήσεις, παρά από λίγες και μεγάλες.

Η γλώσσα προγραμματισμού C

Προγραμματισμός Η/Υ (ΤΛ2007 )

Ηβασικήσυνάρτηση προγράμματος main()

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Δομημένος Προγραμματισμός (ΤΛ1006)

Η γλώσσα προγραμματισμού C

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Η βασική συνάρτηση προγράμματος main()

Μεθόδων Επίλυσης Προβλημάτων

Εισαγωγή στον Προγραμματισμό με C++

Ανάπτυξη και Σχεδίαση Λογισμικού

Εισαγωγή στον δομημένο προγραμματισμό

Διδάσκων: Παναγιώτης Ανδρέου

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Διδάσκων: Παναγιώτης Ανδρέου

Δομημένος Προγραμματισμός

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Η/Υ (ΤΛ2007 )

Διάλεξη 9η: Πίνακες (arrays)

Εργαστήριο 9: Αρχεία

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ

Προγραμματισμό για ΗΜΥ

Προγραμματισμός Η/Υ (ΤΛ2007 )

Μεθόδων Επίλυσης Προβλημάτων

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Δομημένος Προγραμματισμός (ΤΛ1006)

Εργαστήριο 2: Πίνακες

Γλώσσες Προγραμματισμού

Μεθόδων Επίλυσης Προβλημάτων

Προγραμματισμό για ΗΜΥ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 6 Ο. Συναρτήσεις Τοπικές, καθολικές, στατικές μεταβλητές Μεταβλητές τύπου extern και register Αναδρομή

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. (Διάλεξη 14) Παράδειγμα: Αλλαγή τιμής μεταβλητής μόνο τοπικά

Ανάπτυξη και Σχεδίαση Λογισμικού

Προγραμματισμός Η/Υ. Ενότητα 7: Συναρτήσεις

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Δομημένος Προγραμματισμός (ΤΛ1006)

Κεφάλαιο 6: Συναρτήσεις IΙΙ Αρθρωτός Προγραμματισμός. Δείκτες (Διάλεξη 14)

Διδάσκων: Παναγιώτης Ανδρέου

Διαδικασιακός Προγραμματισμός

Προγραμματισμό για ΗΜΥ

Εισαγωγή στον Προγραμματισμό

Διδάσκων: Παναγιώτης Ανδρέου

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δείκτες και Συναρτήσεις (Κεφάλαιο 11, KNK-2ED)

είκτες και Πίνακες (2)

5. ΣΥΝΑΡΤΗΣΕΙΣ. (Πρόχειρο σχέδιο - Μαθήµατος 3) p Συναρτήσεις, που δεν επιστρέφουν κάποια τιµή

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

ΣΥΝΑΡΤΗΣΕΙΣ (Functions)

Διάλεξη 11: Οργάνωση Προγραμμάτων σε Πολλαπλά Αρχεία

Συναρτήσεις-Διαδικασίες

Μεθόδων Επίλυσης Προβλημάτων

Δομημένος Προγραμματισμός

Πίνακες. Οι πίνακες αποτελούν ένα σηµαντικό δοµηµένο τύπο δεδοµένων (structured data type) ή πιο απλά µία δοµή δεδοµένων (data structure).

Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Εισαγωγή στον Προγραμματισμό

Προγραμματισμός Ι. Συναρτήσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Κλάσεις και Αντικείµενα

Προγραμματισμός Ι (ΗΥ120)

Διάλεξη 11η: Δείκτες, μέρος 1

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

Διαδικασιακός Προγραμματισμός

Διάλεξη 5: Δείκτες και Συναρτήσεις

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

ΗΥ-150. Προγραμματισμός

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

12. Συναρτήσεις (Μέρος ΙI)

Εξοικείωση με το πρόγραμμα DEV C++ Επικοινωνία Χρήστη - Υπολογιστή

ΗΥ-150. Πίνακες (Arrays)

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

Διάλεξη 6: Δείκτες και Πίνακες

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Transcript:

Εργαστήριο 1: Επανάληψη Βασικών Εννοιών στη Γλώσσα C Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή στις έννοιες: - Συναρτήσεις - Εξωτερικές μεταβλητές - Κανόνες εμβέλειας - Διάρκεια μεταβλητών - Αρχικοποίηση μεταβλητών ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ. 1

Οδηγίες για Προγραμματιστικές Ασκήσεις Η Εργασία θα παραδοθεί σε ηλεκτρονική μορφή μέσο email στον υπεύθυνο του εργαστηρίου (petrosp OR paul.antoniou @cs.ucy.ac.cy) Στο email σας πάντα να γράφεται για Θέμα/Subject τα ακόλουθα: EPL035 Homework <αριθμός άσκησης> ID:<αριθμός ταυτότητας> π.χ., EPL035 Homework 1 ID:123456 Η εργασία να παραδίδεται και σε έντυπη μορφή η οποία θα περιέχει τον κώδικα σας και ένα αντιπροσωπευτικό παράδειγμά εκτέλεσης του μαζί με τα σχόλια που ζητούνται πιο πάνω. Το όνομα του αρχείου με τον πυγαίο κώδικα να είναι ο αριθμός ταυτότητας σας. Οι κώδικες σας θα αναλυθούν με το σύστημα moss για αντιγραφές. και φυσικά θα πρέπει να γίνεται compile με τον compiler gccτης αίθουσας B103. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-2

Συναρτήσεις (Επανάληψη) #include <stdio.h> int power(int m, int n); main() { int i; for (i = 0; i < 10; i++) printf( %d %d \n, i, power(2,i)); return 0; } int power(int base, int n) { int i, p; p = 1; for (i = 1; i <= n; i++) p = p * base; return p; } ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-3

Συναρτήσεις (Επανάληψη) Συναρτήσεις μπορούν να δηλωθούν σε οποιαδήποτε σειρά, σε ένα ή περισσότερα αρχεία. Βασικές Έννοιες Πρωτότυπο συνάρτησης Κλήση/Επιστροφή Παραμέτροι (τυπικές - πραγματικές) Παραμέτροι -πέρασμα δια τιμής (call by value): int power(int base, int n) διοχέτευση πληροφοριών προς τη συνάρτηση οι τιμές των πραγματικών παραμέτρων αντιγράφονται σε νέες (προσωρινές) μεταβλητές κατά την εκτέλεση της κληθείσας συνάρτησης. η κληθείσα συνάρτηση δεν μπορεί να επηρεάσει άμεσα τις τιμές μεταβλητών στη συνάρτηση κλήσης. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-4

Συναρτήσεις (Επανάληψη) Πέρασμα δια αναφοράς (callbypointeror reference) swap(int *a, int *b) Η συνάρτηση κλήσης παρέχει στη συνάρτηση, δείκτες προς τις μεταβλητές (δηλαδή πάλι η διεύθυνση της μεταβλητής). Η κληθείσα συνάρτηση μπορεί να αλλάξει τις τιμές των μεταβλητών. Στην C++ υπάρχει και το καθαρό πέρασμα δια αναφοράς (callbyreference) swap(int &a, int &b) Σε αυτό το μάθημα θα χρησιμοποιήσουμε μόνο C (όχιc++) Πίνακες: sort(int array[]); Όταν το όνομα ενός πίνακα δοθεί ως παράμετρος σε μια συνάρτηση, η τιμή που διοχετεύεται στη συνάρτηση είναι η διεύθυνση της αρχής του πίνακα (δεν αντιγράφονται τα στοιχεία του πίνακα). Έτσι η συνάρτηση μπορεί να αλλάξει τις τιμές του πίνακα, και οι αλλαγές γίνονται ορατές στην κληθείσα συνάρτηση. Με χρήση δεικτών μπορούμε να αναφερθούμε στα στοιχεία του πίνακα. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-5

Εξωτερικές/Εσωτερικές Μεταβλητές Οι εξωτερικές μεταβλητές ορίζονται έξω από το σώμα οποιασδήποτε συνάρτησης και έτσι μπορούν να χρησιμοποιηθούν από πολλές συναρτήσεις. Αντίθεταοι εσωτερικές μεταβλητές ορίζονται στο σώμα κάθε συνάρτησης και είναι γνωστές μόνο στη συνάρτηση στην οποία ορίζονται. #include <stdio.h> int sum; /* external variable */ int main(void) { } int i; /* local or internal or automatic variable */ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-6

Εξωτερικές Μεταβλητές (συν.) Χρήση Εξωτερικών μεταβλητών: Θεωρείτε ένας εναλλακτικός μηχανισμός για πέρασμα παραμέτρων σε συναρτήσεις και επιστροφή τιμών από αυτές. Προσοχή: Λανθασμένη χρήση τους (υπερβολική χρήση) καταστρέφει τη δομή και την αναγνωσιμότητα του κώδικα Συναρτήσεις που έχουν έναν πολύ μεγάλο αριθμό παραμέτρων καλύτερα να κάνουν χρήση των εξωτερικών μεταβλητών Οι εξωτερικές μεταβλητές είναι επίσης χρήσιμες λόγω της μεγαλύτερης εμβέλειας και της μεγαλύτερης διάρκεια ζωής σε σχέση με τις εσωτερικές μεταβλητές. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-7

Κανόνες Εμβέλειας Η εμβέλειατου ονόματος μιας μεταβλητής ή μιας συνάρτησης είναι το τμήμα του προγράμματος στο οποίο το όνομα αυτό μπορεί να χρησιμοποιηθεί. Οι αυτόματες μεταβλητές(automatic variables) που δηλώνονται στην αρχή κάθε συνάρτησης έχουν εμβέλεια μόνο τη συνάρτηση στην οποία δηλώνονται. Το ίδιο ισχύει και για τα ονόματα των παραμέτρων μιας συνάρτησης. void swap(int firstpart, int secondpart); Οι εξωτερικές μεταβλητές έχουν εμβέλεια από το σημείο στο οποίο δηλώθηκαν ως στο τέλος του αρχείου αυτού. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-8

Κανόνες Εμβέλειας (συν.) Είναι πολύ σημαντικός ο διαχωρισμός μεταξύ δήλωσηςμιας εξωτερικής μεταβλητής και ορισμού μιας εξωτερικής μεταβλητής. Δήλωση Μεταβλητής (Declaration) Κάνουμε γνωστές τις ιδιότητες της μεταβλητής (κυρίως τον τύπο της) extern int a; Ορισμός Μεταβλητής (Definition) Δηλώνουμε μια μεταβλητή και επιπλέον δεσμεύουμε χώρο γι αυτήτη μεταβλητή. inta = 1; Πρέπει να υπάρχει μόνο ένας ορισμόςμιας εξωτερικής μεταβλητής σε ένα και μόνο αρχείο από τα πολλά τα οποία αποτελούν την οντότητα ενός προγράμματος. Στα υπόλοιπα αρχεία μπορούν να υπάρχουν δηλώσεις τύπου externγια την προσπέλαση της μεταβλητής αυτής. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοιγια Ηλ. Μηχ. και Μηχ. Υπολ. L1-9

Παράδειγμα... int main(void) { } int sp = 0; double val[maxval]; void push(double f) { } double pop(void) { } Οι μεταβλητές sp και val μπορούν να χρησιμοποιηθούν στις συναρτήσεις push() και pop() απλά μέσω του ονόματός τους χωρίς καμιά επιπλέον δήλωση. Αλλά οι μεταβλητές αυτές δεν είναι γνωστές στο main(), ούτε και τα ονόματα των συναρτήσεων push() και pop(). ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-10

Κανόνες Εμβέλειας (συν.) Αν μία εξωτερική μεταβλητή πρέπει να χρησιμοποιηθεί πριν τον ορισμό της ή έχει οριστεί σε ένα διαφορετικό αρχείο τότε η δήλωση της μεταβλητής ως extern είναι απαραίτητη. Για παράδειγμα: extern int sp; extern double val[]; int main(void) { } int sp=0; double val[maxval]; void push(double f) { } ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-11

Κανόνες Εμβέλειας (συν.) Αξίζει να σημειωθεί ότι όπως στις μεταβλητέςέτσι και στις συναρτήσεις, όταν πρέπει να κάνουμε κλήση μιας συνάρτησης η οποία έχει οριστεί παρακάτω ή σε κάποιο άλλο αρχείο τότε απαιτείται η δήλωση του πρωτοτύπου της συνάρτησης. int square(int); /* function prototype */ int main(void) {.. x = square(5); } int square(int I) { /* function definition */ } ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-12

Διάρκεια Μεταβλητών Οι εξωτερικές μεταβλητέςέχουν διάρκεια ως το τέλος του προγράμματος. Οι τοπικές μεταβλητέςσε μία συνάρτηση έχουν διάρκεια ως το τέλος της εκτέλεσης της συνάρτησης. Σε περίπτωση που απαιτείται μια τοπική μεταβλητή να έχει διάρκεια ζωής όσο όλο το πρόγραμμα χρησιμοποιείται η λέξη κλειδί static κατά τον ορισμό της. void func(int x) { static int temp; } Να αποφεύγεται αν είναι δυνατόν Ορίζοντας μια εξωτερική μεταβλητή ως staticτότε η εμβέλεια της μεταβλητής περιορίζεται στο αρχείο όπου αυτή ορίζεται και διαφέρει από οποιεσδήποτε συνώνυμες μεταβλητές σε άλλα αρχεία που αποτελούν το ίδιο πρόγραμμα. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-13

Δηλώσεις Μεταβλητών (συν.) Οι τοπικές (ή αλλοιώς αυτόματες) μεταβλητές που ορίζονται στο σώμα των συναρτήσεων καθώς και οι τυπικές παράμετροι των συναρτήσεων κρύβουν(override) οποιεσδήποτε εξωτερικές μεταβλητές ή συναρτήσεις με το ίδιο όνομα. int x; int y; void f(double x) { double y; } Μέσα στη συνάρτηση f, το όνομα xαναφέρεται στην παράμετρο της συνάρτησης που είναι ένας double και όχι στην εξωτερική μεταβλητή που είναι int. Το ίδιο ισχύει και για τη μεταβλητή y. Προτείνεται να μη χρησιμοποιούνται μεταβλητές στις συναρτήσεις τα ονόματα των οποίων να συγκρούονται με μεταβλητές του εξωτερικού επιπέδου. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-14

Αρχικοποίηση Μεταβλητών Γενικοί κανόνες αρχικοποίησης εξωτερικών και στατικών μεταβλητών: Απουσία ρητής αρχικοποίησης οι εξωτερικέςκαι οι στατικές(static) μεταβλητές αρχικοποιούνται με την τιμή μηδέν. Ρητή αρχικοποίηση Οι μεταβλητές μπορούν να λάβουν πρέπει να είναι μία σταθερή έκφραση (constant expression). int x = 1; char squote = \ ; Η αρχικοποίησή τους γίνεται μόνο μία φορά πριν ακριβώς την εκτέλεση του προγράμματος. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-15

Αρχικοποίηση Μεταβλητών (συν.) Γενικοί κανόνες αρχικοποίησης αυτόματων μεταβλητών Σε περίπτωση ρητής αρχικοποίησης, η τιμή που μπορούν να λάβουν μπορεί να είναι οποιαδήποτεέκφραση που περιέχει μεταβλητέςή ακόμα και κλήσεις συναρτήσεων. int f(int x, int v[], int n) { int low = 0; int high = n-1; } ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-16

Αρχικοποίηση Μεταβλητών (συν.) Κανόνες Αρχικοποίησης Πινάκων Οι αρχικές τιμές ενός πίνακα δίνονται κατά τον ορισμό του, περιέχονται μεταξύ δεξιάς και αριστερής αγκύλης και διαχωρίζονται με κόμμα: int a[] = { 1, 5, 18, 23}; Αν η διάσταση παραληφθεί τότε υπολογίζεται από τον μεταφραστή βάσει του πλήθους των αρχικών τιμών (στο παράδειγμα η διάσταση του πίνακα a θα είναι τέσσερα). Αν οι αρχικές τιμές που δίνονται είναι λιγότερες της διάστασης τότε οι υπόλοιπες θέσεις τίθονται μηδέν για εξωτερικές, στατικές αλλά και αυτόματες μεταβλητές τύπου πίνακα. Είναι λάθος να δίνονται περισσότερες αρχικές τιμές από τις θέσεις του πίνακα. ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-17

Αρχικοποίηση Μεταβλητών (συν.) Κανόνες Αρχικοποίησης Πινάκων (συν.) Δεν υπάρχει τρόπος επανάληψης της ίδιας αρχικής τιμής για όλες τις θέσεις ενός πίνακα(εκτος του 0 δηλ int a[10] ={}) Στους πίνακες χαρακτήρων υπάρχει ένας εναλλακτικός πιο εύκολος τρόπος αρχικοποίησης αντί της χρήσης των {, }και,. char text[] = Hello ; είναι συντομογραφία του char text[] = { H, e, l, l, o, \0 }; Ή διάσταση του πίνακα γίνεται και στις δύο περιπτώσεις έξι (πέντε χαρακτήρες συν ο τερματικός χαρακτήρας \0 ). ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. L1-18