Documente Academic
Documente Profesional
Documente Cultură
Constantele sunt valori fixe (numerice, caractere sau şiruri de caractere), nealterabile
prin program. Reprezentarea unei constante depinde de tipul său.
Constante numerice
Constantele întregi pot fi: zecimale, octale sau hexazecimale. Tipul poate fi precizat
prin adăugarea unui sufix sau este determinat de valoare, atunci când nu se utilizează sufix.
Constantele zecimale au prima cifră diferită de 0.
• Constantele de tip întreg sunt specificate fără virgulă. Pentru acestea, implicit,
complilatorul stabileşte tipul care ocupă cea mai puţină memorie. Tipul poate fi însă
stabilit prin program, dacă se utilizează sufixele U sau u, L sau l, UL, Ul sau ul pentru
unsigned, long, respectiv unsigned long.
• Constantele în virgulă mobilă se scriu cu punctul zecimal cu punct sau în forma cu
exponent şi pot fi de tip:
o float, dacă conţin sufixul F sau f ,
o long double, dacă conţin sufixul L sau l, sau
o double , dacă nu conţin sufix.
7
”Aceste siruri ””se”
”concateneaza.”
În acest mod, se pot scrie şiruri care ocupă mai multe rânduri. Se mai poate utiliza şi
alternativa:
Cod Semnificaţie
\b Backspace
\f Avans hârtie
\n Rând nou
\r Retur de car
\t Spaţiu de tabulare orizontal
\” Ghilimele duble
\’ Ghilimele simple
\0 Nul
\\ Backslash ( \ )
\v Spaţiu de tabulare vertical
\a Alertă
\N Constantă în octal ( N este constanta în octal )
\xN Constantă în hexazecimal ( N este constanta în hexazecimal )
#include <stdio.h>
void main(void)
{
printf(”\n\tMesaj”);
}
Observaţie: Orice valoare din gama char se poate specifica folosind secvenţe octale,
în gama ‘\0’..’\0377’, sau secvenţe hexazecimale, în gama ‘\x0’..’\x0FF’.
8
Variabile
O variabilă este numele unei locaţii din memorie utilizată pentru a păstra o valoare
care poate fi modificată prin program. Toate variabilele utilizate într-un program trebuie
declarate. Declaraţia trebuie să preceadă utilizarea variabilei. Exemple de declaraţii:
int i, j, k;
unsigned int l1;
short int m;
float a, b, delta;
double eroare, precizie;
long double miu, epsilon;
Observaţii:
1. La declararea variabilelor, modificatorii se plasează în faţa numelui tipului.
2. Când modificatorii long, short şi unsigned sunt utilizaţi cu tipul int, numele
tipului se poate omite. De exemplu, declaraţiile:
unsigned int k, l;
short int m;
unsigned k, l;
short m;
u_l_i k, l;
Variabile locale
Varibilele care sunt declarate în interiorul unei funcţii se numesc variabile locale sau
automatice. Ele sunt accesibile numai instrucţiunilor din interiorul blocului în care au fost
definite şi sunt dinamice, adică există numai atâta timp cât se execută blocul în care sunt
declarate. Aceasta înseamnă că o astfel de variabilă este creată la începutul execuţiei blocului
şi distrusă la încheierea execuţiei.
De obicei, blocul de cod în care sunt declarate este funcţia. De exemplu, în secvenţa:
9
void f1(void)
{
int x;
x=10;
}
void f2(void)
{
int x;
x=100;
}
variabila x a fost declarată în două funcţii f1 şif2, adică în două blocuri diferite. Cu toate că au
acelaşi nume, cele două variabile sunt diferite.
Observaţii:
1. Limbajul C conţine cuvântul cheie auto pentru a se declara variabile locale.
Exemplu:
Cum toate variabilele care nu sunt globale sunt implicit locale, cuvântul nu este utilizat.
2. Într-o funcţie, din obişnuinţă, variabilele locale se declară înainte de acolada deschisă.
Totuşi, în C++, se pot decara variabile locale în orice bloc. De exemplu, în secvenţa
următoare:
void f(void)
{
int x;
scanf(”%d”, &t);
if(x=10)
{
char s[30];
printf(”Introduceti numele:”);
get(s);
}
}
Parametrii formali
10
/* Functia returneaza valoarea 1, daca in sir este gasit
caracterul c, sau 0, in caz contrar*/
f1(char *sir, char c)
{
while(*sir)
if(*sir=c) return 1;
else s++;
return 0;
}
sunt declaraţi doi parametrii: sir, de tip sir de caractere, şi c, de tip caracter. În cadrul funcţiei
f1, aceştia sunt utilizaţi ca variabile locale.
Variabile globale
Varibilele globale sunt cunoscute în tot programul şi pot fi utilizate în orice zonă a
codului. Acestea se declară în afara oricărei funcţii. De exemplu, programul
#include <stdio.h>
int k /* contor global*/
void f1(void);
void f2(void);
void main(void);
{
k=10;
f1();
}
void f1(void);
{
int j;
j=k;
f2();
printf(”k= %d”, k);/* se afiseaza k=10*/
}
void f2(void);
{
int k;
for(k=1;k<5;k++)
putchar(”-”);
}
conţine două variabile diferite cu acelaşi nume k. Prima este declarată în funcţia main şi este
globală, iar a doua este declarată în funcţia f2 şi este locală. În blocul funcţiei f2, referirile se
fac la variabila locală k, iar în blocul funcţiei f1 referirile se fac la variabila globală k.
Observaţie: Se recomandă, pe cât posibil, evitarea variabilelor globale, deoarece
acestea se păstrează în memorie pe toată durata execuţiei programului sau se pot produce
erori, prin schimbarea accidentală a acestora.
11
Iniţializări de variabile
Exemple:
char ch=’a’;
int i, j, k=-5;
float a, delta=1.45e-7, e=2.71;
long double f=32145.55e-7;
Modelatori de acces
Modul de apelare sau modificare al variabilelor poate fi controlat cu modificatorii
const şi volatile. Aceştia trebuie să preceadă specificatorii de tip şi numele tipului de dată la
care se referă.
Variabilele de tip const nu pot fi modificate de program. Ele pot fi modificate numai
de ceva din afara programului (cauze externe).
Variabilele de tip const pot primi şi valori iniţiale. De exemplu, prin instrucţiunea
codul funcţiei poate modifica valoarea indicată de pointer. Acest lucru nu mai poate fi posibil
dacă se utilizează moderatorul const, adică
Moderatorul volatile indică faptul că valoarea unei variabile poate fi modificată pe căi
nedeclarate explicit de program (de exemplu, dacă ea păstreză timpul real al sistemului).
12