Pointer în C++. Variabile de tipul char * (char steluță)
În această lecție discutăm ce este un pointer în C++. Se recomandă urmărirea lecției cu șiruri de caractere înainte de aceasta, pentru a înțelege mai exact la ce sunt buni.
Să declarăm un șir de caractere:
char s[] = "InfoAs";
Am discutat că s
este un tablou unidimensional — un șir de caractere,
reprezentat printr-un vector de char
. Însă, în esență, s
este defapt un
pointer, adică atunci când îl apelăm pe s
în programul nostru, tot ce
facem este să mergem pe poziția unde este salvată informația din s
, adică
"InfoAs"
în cazul nostru. Mai precis de atât, s
este un pointer către
primul caracter din șirul nostru, adică către caracterul 'I'
.
Tipul char *
este o metodă de a reține un pointer, însă fără să avem un loc
definit unde să salvăm informația (spre deosebire de s
, unde am făcut loc
pentru a reține "InfoAs"
).
Un pointer se declară ca mai jos și i se poate atribui o anumită adresă de
memorie (spre exemplu, locația de unde începe s
), lucru ce îi dă
posibilitatea să funcționeze ca șirul de caractere căruia i s-a dat adresa:
#include <iostream>
using namespace std;
int main()
{
char s[] = "InfoAs";
//Declarare pointer p:
char *p; //sau, char* p | char * p (sunt exact la fel!)
//p în acest moment reține o locație aleatorie, exact ca o variabilă neinițializată, deci nu putem face nimic cu el încă
cout << s << "\n"; //afișare: InfoAs
p = s; //p este acum echivalent cu s
cout << p << "\n"; //afișare: InfoAs
cout << p[3] << "\n"; //afișare: o
p = p + 1;
cout << p << "\n"; //afișare: nfoAs
p = s + 4;
cout << p << "\n"; //afișare: As
}
Alte resurse și bibliografie
DS
Autorul acestei lecții
Dominic Satnoianu
Această lecție a fost redactată de către Dominic Satnoianu.
© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.
Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor.
Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.
Comentarii 0