Professional Documents
Culture Documents
Brian W. Kernighan
Dennis M. Ritchie
C O N T I N U T
Prefata.................................................................3
Capitolul 0. Introducere................................................4
Capitolul 1. Initiere...................................................7
1.1 S ncepem..........................................................7
1.2 Variabile si aritmetica............................................ 9
1.3 Instructiunea For.................................................. 11
1.4 Constante simbolice................................................ 12
1.5 O colectie de programe utile....................................... 13
1.6 Tablouri........................................................... 17
1.7 Functii............................................................ 19
1.8 Argumente - apelul prin valoare.................................... 21
1.9 Tablouri de caractere.............................................. 21
1.10 Domenii. Variabile externe.........................................23
1.11 Rezumat............................................................25
Capitolul 2. Tipuri de date, operatori si expresii......................27
2.1 Nume de variabile.................................................. 27
2.2 Tipurile si marimea datelor........................................ 27
2.3 Constante.......................................................... 28
2.4 Declaratii......................................................... 29
2.5 Operatori aritmetici............................................... 30
2.6 Operatori relationali si logici.................................... 30
2.7 Conversii de tip................................................... 31
2.8 Operatori de incrementare si decrementare.......................... 33
2.9 Operatori logici pe biti........................................... 35
2.10 Operatorul si expresii de asignare.................................36
2.11 Expresii conditionale..............................................37
2.12 Pondere si ordine de evaluare......................................38
Capitolul 3. Controlul executiei........................................40
3.1 Instructii si blocuri.............................................. 40
3.2 If-else............................................................ 40
3.3 Else-if............................................................ 41
3.4 Switch............................................................. 42
3.5 Bucle - while si for............................................... 43
3.6 Bucle do-while..................................................... 45
3.7 Break.............................................................. 46
3.8 Continue........................................................... 47
3.9 Goto-uri si etichete............................................... 48
Capitolul 4. Funcii i structura programelor...........................49
4.1 Notiuni de baza.................................................... 49
4.2 Functii ce returneaza non-intregi...................................51
4.3 Despre argumentele functiilor.......................................53
4.4 Variabile externe.................................................. 53
4.5 Reguli despre domenii.............................................. 56
4.6 Variabile statice.................................................. 59
4.7 Variabile registru................................................. 60
4.8 Structura de bloc.................................................. 60
4.9 Initializare....................................................... 61
4.10 Recursivitate......................................................63
4.11 Preprocesorul C....................................................64
P R E F A T A
C este un limbaj de programare cu scop general ale carui caracteristici sint economia de
expresie, structuri moderne de control al fluxului si de date, precum si un set bogat de operatori. C
nu este un limbaj de nivel "foarte inalt", nici "mare", si nu este specializat vreunei arii particulare de
aplicatii. Dar absenta in restrictii si generalitatea sa il fac mai convenabil si mai de efect pentru mai
multe scopuri decit limbaje presupuse mai puternice. C a fost la inceput proiectat si implementat pe
sistemul de operare UNIX pe DEC PDP11 de catre Dennis Ritchie. Sistemul de operare,
compilatorul C si in mod esential, toate programele de aplicatii ale lui UNIX (inclusiv software-ul
folosit pentru a pregati cartea aceasta) sint scrise in C. Compilatoare de C exista deasemenea si pe
mai multe alte calculatoare, intre care IBM System/370 Honeywell 6000 si Interdata 8/32. C nu este
legat de nici un hardware sau calculator anumit si e simplu de scris programe care se pot executa
fara nici o modificare pe diferite calculatoare care au limbajul C implementat.
Aceasta carte are drept scop sa-l ajute pe cititor sa invete sa programeze in C. Ea contine o
initiere, pentru ca noii utilizatori sa poata incepe cit mai repede posibil, capitole separate pentru
fiecare caracteristica majora, si un manual de referinta. Marea parte a textului nu se bazeaza atit pe
expunerea de reguli si propozitii cit pe citirea, scrierea si revizuirea de exemple. In cea mai mare
parte exemplele sint programe reale si sint complete si nu fragmente izolate. Toate exemplele au
fost testate direct din text, care este intr-o forma citibila pe calculator. Pe linga faptul ca am aratat
cum se utilizeaza efectiv limbajul, am incercat in plus, acolo unde era posibil, sa-l ilustram cu
algoritmi utili si cu principii de bun stil in programare si proiectare sanatoasa. Aceasta carte nu este
un manual introductiv de programare. Ea presupune anumite familiaritati cu conceptele de baza din
programare, ca variabile, instructiuni de asignare, bucle, functii. Cu toate acestea, un programator
novice va fi in stare sa citeasca cartea si sa-si insuseasca limbajul, chiar daca ajutorul unui coleg cu
experienta mai mare i-ar usura munca foarte mult. In experienta noastra, C s-a dovedit un limbaj
placut, expresiv si adaptabil pentru o mare varietate de programe. Este usor de invatat si "se poarta
bine" pe masura ce experienta in programare cu el creste. Speram ca aceasta carte va va ajuta sa-l
folositi bine.
Brian W. Kernighan
Dennis M. Ritchie