Sunteți pe pagina 1din 6

Lucrarea 1

Introducere în limbajul C

Limbajul C a fost dezvoltat la începutul anilor 1970 de Ken Thompson şi


Dennis Ritchie, care aveau nevoie de un limbaj simplu şi portabil pentru
scrierea nucleului sistemului de operare Unix. Este implementat pe marea
majoritate a platformelor de calcul existente azi şi este cel mai popular limbaj
de programare pentru scrierea de software de sistem.

Identificatori
In C numele de variabile, constante, tipuri de date definite de utilizator, functii,
etc sunt denumite identificatori. Aceştia sunt succesiuni de litere sau cifre, în
care primul caracter nu este cifră.

Constantele
Sunt valori care nu se modifică pe parcusrsul programului. Daca li se asociază
un identificator, ele pot fi referite apoi pe parcursul programului cu acest
identificator
Exemplu
Const int a=10;

Utilizarea calificatorului const din declaraţie certifică faptul că valoarea


respectivă nu poate fi modificată de către program.

Tipuri de date: reprezintă o mulţime omogenă de date. Tipul de date se


identifică printr-un identificator, plajă de valori ataşată tipului. Toate datele
dintr-un anume tip sunt reprezentate intern, în memoria calculatorului, în
acelaşi mod. In C tipurile de date pot fi predefinite (de bază) si definite de
utilizator (derivate). Un tip de date este caracterizat de dimensiunea zonei de
memorie alocate unui element.Dimensiunea şi domeniul de valori ale acstor
tipuri de date pot varia insă de la un procesor la altul. Întotdeauna un caracter
echivalează cu un octet.

Tipul Intervalul Numar de octeti


char [-128, 128] 1
unsigned char [0, 255]
short [-32768, 32767] 2
unsigned short [0, 65535]
int [-32768, 32767] 2
unsigned int [0, 65535]
long [-2147483648,2147483647] 4
unsigned long [0, 429467259]
float Valoarea absoluta in 4
[3,4*10-38, 3.4*1038]
double Valoarea absoluta in 8
[1.7*10-308, 1.7*10308]
long double Valoarea absoluta in 10
[3.4*10-4932, 1.1*104932]

Variabilele sunt caracterizate de elementele: nume, adresa de memorie, un tip


de date şi valoarea. Locaţia de memorie (adresa) stochează valoarea variabilei
la un moment dat. Prin urmare variabilele sunt date care îşi pot modifica
valoarea pe parcursul execuţiei programului. Toate variabilele dintr-un program
trebuie declarate înainte. Iniţializarea variabilei se poate face simultan cu
declararea sa. Forma generală a unei declaraţii este:

Tip lista _variabile;

Dacă aveţi mai multe variabile de acelaşi tip ele pot fi declarate, înşiruind
numelor lor separate de virgulă în dreptul tipului de bază, pe aceeaşi linie.
Exemplu:
int a, b ;
int m=1 ;
char c ;
float x, y=5 ;

Variabilele locale
Variabilele declarate în interiorul unor funcţii sunt numite variabile locale.
Aceste variabile în C, se mai numesc şi variabile automate. Aceste variabile nu
vor fi recunoscute în afara blocului funcţiei.

Exemplu:
void functie_1(void)
{
int x,y ;
x=10 ;
y=x+3 ;
}
void functie_2(void)
{
int x ;
x=-123 ;
}
De remarcat că variabila x, declarată în funcţie_1 nu are nici o legatură cu
variabila x din funcţie_2. In C avem posibilitatea să declaram variabilele nu
numai imediat după acolada, ci şi în interiorul blocului funcţiei.
void f (void)
{
int s ;
}

Un avantaj al declarării unei variabile locale în interiorul unui bloc este că


memoria pentru variabilă va fi alocată numai dacă e necesar. Variabilele locale
sunt create la fiecare inteare în blocul funcţiei şi distruse la ieşirea din el.

Observaţie Limbajul C face diferenţa dintre dintre literele mici şi cele mari.

Inserarea de comentarii
Uneori pentru o mai bună inţelegere a programului, putem adăuga acestuia
comentarii.
Comentariile se inserează în program în două moduri. Prima posibilitate este
să inseraţi caracterele slash //, înaintea textului vostru.
// Acesta este un comentariu
A altă posibilitate este să scrieţi textul între caractere slash şi asteriscuri, astfel
/* Acesta este un comentariu*/
La întâlnirea simbolurilor pentru inserarea comentariilor, compilatorul ignoră
aceste mesaje, ele având importanţă doar pentru programator.

Parametrii formali
Intr-o funcţie care foloseşte argumente trebuie declarate variabilele care
acceptă valorile argumentelor, variabile numite parametrii formali ai funcţiei.

Observaţie

Parametrii formali declaraţi trebuie să fie de acelasi tip cu argumentele folosite


la apelarea funcţiei. Un parametru este o valoare transmisă unei functii. Cele
mai multe dintre programe transmit parametri către funcţia printf:

printf (“valoarea este %d\n”, rezultat);


Exemplu
void info_angajat (int varsta, float salariu, int nr_marca).

// instrucţiunile funcţiei;

}
Variabilele vârstă, salariu, nr_marca, reprezintă parametrii formali ai funcţiei
info_angajat

Parametrii formali se aloca pe stivă ca şi variabilele automatice. De aceea, ei


se consideră a fi variabile locale şi sunt utilizabili numai în corpul funcţiei în
antetul căreia sunt declarati.
La apelul unei functii, se alocă pe stivă parametri formali, daca există, li se
atribuie valorile parametrilor efectivi care le corespund. Apoi se alocă pe stiva
variabilele automatice declarate la începutul corpului funcţiei respective.
La revenirea din funcţie, se realizeaza curătirea stivei, adică sunt eliminate de
pe stivă (dezalocate) atât variabilele automatice, cât şi parametrii. In felul
acesta, la revenirea din funcţie, stiva ajunge la starea dinaintea apelului.

Variabile globale

Spre deosebire de cele locale, acestea sunt recunoscute de către toate


componentele programului.
Observaţie Dacă o variabilă locală şi una globala au acelaşi nume, trimiterile la
numele acelei variabile din interiorul blocului de cod în care a fost declarată
variabila locală se vor referi numai la variabila locală şi nu vor afecta variabila
globală. Zona de alocare a memoriei pentru variabilele locale este o regiune
fixă de memorie, specială destinată în acest scop de către compilatorul de C.
Variabilele globale sunt utile când un numar mare de funcţii din program
folosesc aceleaşi date. In schimb variabilele globale inutile vor ocupa spaţiu de
memorie pe toată durata execuţiei programului.

Expresii

Expresiile sunt formate din unul sau mai multi operanzi şi operatori. Un
operand poate fi o constantă, numele unei variabile, numele unei structuri,
numele unei funcţii sau chiar o expresie între paranteze rotunde.
Prioritatea operatorilor este cea care determină ordinea de efectuare a
operaţiilor. In C se definesc urmatorii operatori: aritmetici, relaţionali, logici
şi pe biţi.
In funcţie de aceasta avem următoarea grupare a operatorilor:

Operatorul de atribuire se foloseşte în interiorul oricărei expresii valide în C.


Forma generală a acestui operator este:
nume_variabila=expresie

Observaţie
Când variabilele de un tip sunt combinate cu variabile de alt tip se produce o
conversie de tip. Regula acestei conversii este ca valoarea membrului drept
(expresia), este convertită la tipul membrului stâng.
Operatorii de incrementare şi decrementare

Operatorii de incrementare ++ şi decrementare – sunt doi operatori utili ce în


general nu mai apar în alte limbaje de programare. Operatorul de incrementare
adaugă o unitate la operand, iar cel de decrementare scade o unitate.

Exemplu:
x=x+1 este echivalent cu ++x ;
şi
x=x-1 este echivalent cu x-- ;
Cei doi operatori pot precede sau urma operandului, existând diferenţe între
cele două forme.
Exemplu
a=2 ;
b=++a ;
stabileşte valoarea lui b la 3 ;
a=2 ;
b=a++ ;
stabileşte valoarea lui b la 2.

Operatorii de pointer & si *


Pointer-ul este adresa de memorie a unei variabile. Operatorul de pointer &
este un operator unar care returnează operandului său adresa de memorie.
Exemplu
a=&num ;
unde în a se va plasa adresa variabilei num, adresa care reprezintă doar
localizarea internă a variabilei şi nu are legatură cu valoarei ei.
Operatorul * este complementul operatorului adresa şi calculează valoarea
variabilei localizate la adresa ce urmează.
m=*a, unde a este adresa variabilei num.
Variabilele care memorează adrese ( pointeri ) trebuie declarate cu simbolul *
înaintea numelui variabilei.
Astfel în exemplul char *ch, ch nu este o variabilă caracter ci un pointer la
caracter.

Operatorul modulo
In cazul în care vă interesează restul unei împărţiri, limbajul C vă oferă
operatorul modulo (rest)- %
Exemplu
# include <stdio.h>
void main (void)
{
int rest;
rest =110%3;
printf (“110 împarţit la 3 dă restul %d\n”, rest);
}

S-ar putea să vă placă și