CATEGORII DOCUMENTE |
Am vazut anterior ca o constanta se defineste prin caracterele care intra in compunerea ei. De asemenea, in acelasi capitol s-a aratat ca putem atribui un nume unei constante printr-o constructie #define. Un astfel de nume se spune ca este o constanta simbolica si el se substituie prin sirul de caractere care ii corespunde, in faza de preprocesare.
Un alt mod de a defini o constanta este acela de a folosi modificatorul const intr-o declaratie. Printr-o astfel de declaratie, unui nume i se poate atribui o valoare constanta. In acest caz, numele respectiv nu mai este tratat de preprocesor si el poate fi folosit in program in mod analog cu numele variabilelor. Unui astfel de nume declarat cu ajutorul modificatorului const nu i se poate schimba valoarea printr-o expresie de atribuire, ca si unei variabile obisnuite.
Formatele declaratiei cu modificatorul const sunt urmatoarele:
tip const nume = valoare;
const tip nume = valoare;
tip const nume;
const tip nume;
const nume = valoare;
const nume;
Exemplu:
void main (void)
Modificatorul const se foloseste frecvent la declararea parametrilor formali de tip pointer. O astfel de declaratie are formatul:
const tip *nume_parametru_formal;
Un parametru formal declarat prin constructia :
tip *nume_parametru_formal;
corespunde unui parametru efectiv a carui valoare este o adresa. La apel, valoarea parametrului formal devine egala cu aceasta adresa. Datorita acestui fapt, functia apelata poate sa modifice data aflata la adresa respectiva. Daca se foloseste modificatorul const utilizat la declararea unui astfel de parametru formal atunci se interzice functiei apelate sa modifice data de la adresa receptionata la apel de catre parametrul formal corespunzator. Acest mecanism este folosit frecvent in cazul functiilor de tratare a sirurilor de caractere.
De exemplu functia strlen din biblioteca standard a limbajului C are prototipul:
unsigned strlen (const char *s);
Ea se apeleaza prin expresii de atribuire de forma:
i=strlen(x);
unde x este un pointer spre o zona de memorie in care se afla un sir de caractere.
Functia strlen determina lungimea sirului aflat la adresa receptionata de catre parametrul s. Ea nu are voie sa modifice sirul respectiv si din aceasta cauza parametrul s se declara folosind modificatorul const
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 785
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved