Περιεχόμενα

ΓΝΩΡΙΣΤΕ ΤΗ ΓΛΩΣΣΑ C
1.1. Εισαγωγή 11
1.1.1. Παράδειγμα προγράμματος 13
1.1.2. Ιστορικά στοιχεία 15
1.2. Βασικοί ορισμοί 17
1.3. Συναρτήσεις (functions) 20
1.3.1. Η συνάρτηση main( ) 20
1.3.2. Παράμετροι συναρτήσεων (arguments) 21
1.3.3. Η συνάρτηση printf( ) 24
1.4. Μεταβλητές 27
1.5. Δεσμευμένες λέξεις της γλώσσας C 32
1.6. Κλιμακωτές εντολές και σχόλια 33
1.7. Οι βιβλιοθήκες της γλώσσας C 35
1.8. Κωδικοποίηση χαρακτήρων 38
1.9. Παράδειγμα προγράμματος 46
1.9. Ανακεφαλαίωση 55
1.10. Ασκήσεις 57

ΕΙΣΑΓΩΓΗ ΣΤΗ ΓΛΩΣΣΑ C
2.1. Βασικές έννοιες 59
2.2. Μεταβλητές (Variables) 60
2.2.1. Παράσταση των πραγματικών αριθμών στη μνήμη 62
2.2.2. Το πρότυπο IEEE 754 66
2.2.3. Μιγαδικοί αριθμοί 66
2.3. Δήλωση και χρήση των μεταβλητών 67
2.3.1. Τοπικές μεταβλητές 68
2.3.2. Τυπικές παράμετροι 69
2.3.3. Γενικές μεταβλητές και εξωτερικές 71
2.3.4. Μεταβλητές καταχωρητών (register) 75
2.4. Πίνακες 76
2.5. Εντολή αντικατάστασης 78
2.5.2. Αρχικές τιμές μεταβλητών και πινάκων 82
2.6. Σταθερές 84
2.7. Τελεστές 87
2.7.1. Αριθμητικοί τελεστές 87
2.7.2. Σχετικοί και Λογικοί Τελεστές 91
2.7.3. Τελεστές Bitwise 92
2.7.4. Ο Τελεστής ? 97
2.7.5. Οι τελεστές δεικτών & και * 97
2.7.6. Προτεραιότητα πράξεων 100
2.7.7. Στενογραφία 101
2.8. Εκφράσεις 101
2.8.1. Παρενθέσεις 102
2.8.2. Τυποποίηση 102
2.8.3. Ο τύπος void 105
2.9. Συναρτήσεις εισόδου/εξόδου 106
2.9.1. Οι συναρτήσεις getchar( ) και putchar( ) 106
2.9.2. Οι συναρτήσεις gets( ) και puts( ) 107
2.9.3. Η συνάρτηση printf( ) 108
2.9.4. Η συνάρτηση scanf( ) 112
2.9.5. Παραδείγματα εισόδου/εξόδου 119
2.10. Ασκήσεις 122

ΕΝΤΟΛΕΣ ΕΛΕΓΧΟΥ
3.1. Εισαγωγή 127
3.1.1. Εντολή if 128
3.1.2. Το εναλλακτικό ? 133
3.1.3. Εντολή switch 134
3.2. Ανακύκλωση (loop) 137
3.2.1. Εντολή for 138
3.2.2. Εντολή while 144
3.2.3. Εντολή do-while 146
3.3. Έξοδος ανακυκλώσεων 149
3.3.1. Εντολή break 149
3.3.2. Εντολή continue 151
3.3.3. H συνάρτηση exit ( ) 153
3.4. Ετικέτες και goto 155
3.5. Σύνθεση του προγράμματος του κρυφού αριθμού 157
3.6. Παραδείγματα προγραμμάτων 160
3.7. Ασκήσεις 164

ΣΥΝΑΡΤΗΣΕΙΣ
4.1. Βασικές ιδιότητες 167
4.1.1. Τιμές επιστροφής 169
4.1.2. Τύποι μεταβλητών 173
4.2. Παράμετροι Συναρτήσεων 177
4.2.1. Κλήση με Τιμή και Κλήση με Αναφορά 177
4.2.2. Ειδικές περιπτώσεις 181
4.3. Αναδρομή (recursion) 184
4.4. Επιδόσεις των συναρτήσεων 187
4.5. Οργάνωση των συναρτήσεων 189
4.5.1. Βιβλιοθήκες συναρτήσεων 191
4.5.2. Επικεφαλής αρχείο 193
4.5.3. Δημιουργία και χρήση ενός επικεφαλής αρχείου 193
4.5.4. Βιβλιοθήκες προγραμμάτων 198
4.6. Ειδική εκτέλεση προγραμμάτων 199
4.7. Παραδείγματα προγραμμάτων 204
4.8. Ασκήσεις 211

ΔΕΙΚΤΕΣ ΚΑΙ ΠΙΝΑΚΕΣ
5.1. Εισαγωγή στους δείκτες 215
5.1.1. Αριθμητικοί τελεστές δεικτών 219
5.2. Εισαγωγή στους πίνακες 221
5.2.1. Μονοδιάστατοι Πίνακες 223
5.2.2. Δυσδιάστατοι πίνακες 225
5.2.3. Πολυδιάστατοι πίνακες 228
5.3. Δυναμική δέσμευση μνήμης 230
5.4. Δείκτες και πίνακες 232
5.4.1. Δείκτες σε πίνακες χαρακτήρων 233
5.4.2. Πίνακες δεικτών 234
5.4.3. Δείκτες σε πίνακες 236
5.4.4. Δείκτες σε Πολυδιάστατους Πίνακες 237
5.4.5. Δείκτες σε δείκτες 241
5.4.6. Αρχικές τιμές δεικτών 241
5.4.7. Δείκτες συναρτήσεων 243
5.5. Προβλήματα με τους δείκτες 247
5.6. Παραδείγματα προγραμμάτων 250
5.7. Ασκήσεις 261

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ
6.1. Εισαγωγή 263
6.1.1. Ένα πρόγραμμα επεξεργασίας δεδομένων 265
6.2. Είσοδος/Έξοδος Υψηλού Επιπέδου 271
6.2.1. Συναρτήσεις δημιουργίας αρχείων 273
6.2.2. Οι συνάρτησεις fclose( ) και freopen() 277
6.2.3. Οι συναρτήσεις feof( ), clearer( ), fileno( ), ferror( ) 278
6.2.4. Οι συναρτήσεις remove( ) και rename( ) 280
6.3. Συναρτήσεις εισόδου/εξόδου 282
6.3.1. Συναρτήσεις εξόδου putc( ) και fputc( ) 282
6.3.2. Συναρτήσεις εισόδου getc( ) και fgetc( ) 283
6.3.3. Η συνάρτηση ungetc( ) 284
6.3.4. Οι συναρτήσεις fgets( ) και fputs( ) 286
6.3.5. Οι συναρτήσεις fread( ) και fwrite( ) 288
6.3.6. Οι συναρτήσεις fprint( ) και fscanf( ) 290
6.4. Ειδικές περιπτώσεις 292
6.4.1. Τα αρχεία stdin, stdout και stderr 292
6.4.2. Η συνάρτηση fflush ( ) 295
6.4.3. Οι συναρτήσεις setvbuf() και setbuf() 298
6.5. Αρχεία εισόδου/εξόδου χαμηλού επιπέδου 301
6.5.1. Οι συναρτήσεις open ( ), close ( ) και creat ( ) 302
6.5.2. Οι συναρτήσεις write( ) και read( ) 304
6.5.3. Η συνάρτηση unlink( ) 305
6.5.4. Παράδειγμα προγράμματος 305
6.6. Αρχεία τυχαίας προσπέλασης 307
6.6.1. Η συνάρτηση fseek( ) 307
6.6.2. Η συνάρτηση ftell( ) 310
6.6.3. Η συνάρτηση rewind( ) 311
6.6.4. Οι συναρτήσεις fsetpos( ) και fgetpos( ) 313
6.7. Προσωρινά Αρχεία (temporary files) 314
6.7.1. Η συνάρτηση tmpnam( ) 315
6.7.2. Η συνάρτηση tmpfile( ) 316
6.8. Παραδείγματα προγραμμάτων 318
6.9. Ασκήσεις 330

ΔΟΜΕΣ ΚΑΙ ΕΝΩΣΕΙΣ
7.1. Εισαγωγή 333
7.2. Δομή (Structure) 334
7.2.1. Επεξεργασία των μελών μιας δομής 336
7.2.2. Πίνακες δομών 338
7.2.3. Παράδειγμα 338
7.3. Μεταφορά μιας δομής σε συνάρτηση 339
7.3.1. Μεταφορά των μελών μιας δομής σε συνάρτηση 339
7.3.2. Μεταφορά ολόκληρης της δομής σε συνάρτηση 340
7.4. Πίνακες και Δομές 344
7.5. Δυαδικά πεδία (πεδία Bits) 345
7.6. Ένωση (Union) 348
7.7. Παραδείγματα προγραμμάτων 353
7.8. Ασκήσεις 370

ΕΙΔΙΚΕΣ ΕΝΤΟΛΕΣ
8.1. Εισαγωγή 373
8.2. Αλλαγή ονόματος ενός τύπου δεδομένων 374
8.3. Απαριθμήσιμοι τύποι μεταβλητών 375
8.4. Υπολογισμός του μεγέθους των μεταβλητών 378
8.5. Προσδιοριστές 382
8.5.1. Προσδιοριστής const 383
8.5.2. Προσδιοριστής volatile 383
8.5.3. Προσδιοριστής restrict 384
8.6. Συναρτήσεις γραμμής 384
8.7. Παραδείγματα προγραμμάτων 388
8.8. Ασκήσεις 396

ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΣΚΗΣΕΩΝ
9.1. Εισαγωγή 399
9.2. Παραδείγματα λυμένων ασκήσεων 400

ΠΑΡΑΡΤΗΜΑ Α
(Standard C89) 471

ΠΑΡΑΡΤΗΜΑ Β
Βιβλιοθήκες (Header Files) 474
Νεότερες Βιβλιοθήκες της γλώσσας C 483

ΠΑΡΑΡΤΗΜΑ Γ
Δωρεάν διαθέσιμοι μεταγλωττιστές της γλώσσας C 486