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

Autentifică-te pentru a putea comenta.

Autentifică-te