Contact și feedback

Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.


Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.


Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.

Shortcuturi

Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.

Generale

Meniu shortcuturi?
Căutare probleme sau utilizatori/
Navigare printre rezultatele căutării↑, ↓
Meniu de contact și feedbackCTRL + Shift + F
Ieșire din meniuriEsc

Editor probleme

Setări editorCTRL + Shift + S
Schimbare stil editorCTRL + Shift + E
Șabloane de codCTRL + Shift + 1/2/3
Golire editorCTRL + Shift + 4

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

Cuprinsul lecției

Se încarcă…

Citește și

Maximul și minimul a două valori în C++Afișarea elementelor unui vector recursiv în C++Oglinditul unui număr în C++Distanța dintre două puncte în C++Cel mai semnificativ bit în C++CMMMC a două numere în C++ (cel mai mic multiplu comun)Instrucțiunea do while (structuri repetitive)Cea mai lungă secvență de elemente crescătoare în C++Cum să calculezi instant 2 la puterea N în C++Funcții în C++. Ce sunt subprogrameleRadicalul unui număr în C++ (rădăcina pătrată)Cel mai frecvent element dintr-un șir în C++Instrucțiunea break (structuri repetitive)Mediana unui șir de valori în C++Al N-lea termen dintr-o progresie geometricăAlgoritm recursiv pentru căutare binară (clasa a X-a)Verifică dacă un caracter este literă în C++Operații cu numere mari în C++ - Toate funcțiile explicateNumărul minim de peroane pentru o gară în C++Instrucțiunea continue (structuri repetitive)Maximul și minimul a n valori în C++Materia pentru olimpiada de informatică - tot ce trebuie să știiCâte numere naturale sunt într-un interval dat? (C++)Calculul combinărilor de n luate câte k (nCk) în C++Factorialul unui număr în C++Cum să afișezi partea întreagă a unui număr real în C++Numărul combinărilor în C++ (formula combinărilor)Tutorial instalare CodeBlocks (ușor) - Introducere în informatică C++Generarea șirului Fibonacci generalizat în C++Ciurul lui Eratostene în C++Citirea și afișarea matricelor în C++Numere triunghiulare. Verificarea unui număr triunghiularPointer în C++. Variabile de tipul char * (char steluță)Sortare crescătoare recursivă în C++ - Merge sort și Bubble sortCăutare binară în C++Interschimbarea a două variabile în C++ (3 metode)Află secolul unui an citit de la tastatură în C++Tipuri de date în C++: numere întregi, reale, caractere și alteleVerifică dacă un număr dat este o putere de 2 în C++Oglinditul recursiv al unui număr în C++Bordarea unei matrice în C++CMMDC recursiv a două numere naturale în C++Aria unui triunghi folosind coordonatele acestora în C++Ce înseamnă variabilă globală și locală în C++?Combinatorică în C++: permutări, aranjamente, combinări și alteleVerifică dacă un număr aparține șirului Fibonacci în C++Verificare dacă șir de caractere este palindrom în C++Matrice pătratice în C++. Diagonala principală și secundarăAl N-lea termen dintr-o progresie aritmeticăSuma divizorilor numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cel mai mic/mare divizor prim al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Cifrele unui număr. Prelucrarea cifrelor unui număr în C++Transformarea unei litere mari în literă mică în C++Numărul permutărilor în C++ (formula permutărilor)Valoarea absolută (modulul) unui număr în C++Numărul de apariții al unui număr într-un vector în C++Al N-lea termen Fibonacci în C++Instrucțiunea for (structuri repetitive)Ce înseamnă endl în C++?Instrucțiunea de decizie în C++: if, else, switch, caseVerifică dacă un număr este par sau impar fără modulo în C++Verificarea unui an bisect în C++Recursivitate în C++Verificare număr prim în C++ (Clasa a IX-a)Divide et Impera (metodă de programare C++)Codul ASCII (tabel complet)Vectorii în C++: declarare și parcurgereVectori de frecvență (de apariții) în C++Afișarea divizorilor primi ai unui număr în C++Aflarea sumei primelor N sume GaussVerifică dacă o literă este mică sau mare în C++Numărul aranjamentelor în C++ (formula aranjamentelor)Copiuțe: Cifrele unui numărInstrucțiunea while (structuri repetitive)Citește un șir de caractere cu spații în C++Indicatorul lui Euler al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Aplicații cu ciurul lui Eratostene în C++: suma divizorilor, numărul divizorilorSuma 1 + 2 + 3 + ... + N în C++Cifra maximă a unui număr recursiv în C++Ce este o variabilă unsigned în C++?Funcții predefinite în C++ (matematice, șiruri de caractere)Cifra maximă și minimă a unui număr în C++Matrice în C++. Declararea și parcurgerea tablourilor bidimensionaleTransformarea unui număr din baza 2 în baza 10 în C++De ce cer unele probleme răspunsul modulo 666013 sau modulo 1.000.000.007?Tipul struct în C++. Ce sunt structurile de date neomogeneCum să citești și să afișezi în fișiere în C++Structuri repetitive (while, do while, for, etc)Verifică dacă un bit de pe o anumită poziție este 1 sau 0 în C++Suma numerelor naturale dintr-un interval dat în C++Verificare dacă un număr este palindrom în C++Comentarii în C++Suma divizorilor unui număr în C++Inversarea unui șir de caractere în C++Interclasarea a doi vectori în C++Șirul lui Fibonacci în C++Șiruri de caractere în C++. Tot ce trebuie să știiRidicarea la putere în timp logaritmic în C++. Exponențiere rapidăNumărul de divizori al numerelor de la 1 la N (Folosind ciurul lui Eratostene)Matrice Fibonacci - al n-lea termen Fibonacci în timp logaritmicNumărul de divizori primi ai unui număr în C++Maximul și minimul a trei valori în C++Vectorii în C++: citire și afișareNumărul de divizori al unui număr în C++Aria și circumferința unui cerc în C++Verifică dacă un caracter este cifră în C++Ce este o funcție void în C++?Cel mai puțin semnificativ bit în C++Prima cifră a unui număr în C++Do while vs while în C++ - Care e diferența?Cel mai mare divizor comun (CMMDC) a două numere în C++Verifică dacă trei puncte sunt coliniare C++Cel mai mic număr cu suma cifrelor N în C++Numărul de cifre ale factorialului unui numărTransformarea unui număr din baza 10 în baza 2 în C++Transformarea unei litere mici în literă mare în C++Indicatorul lui Euler în C++Rădăcina cubică a unui număr în C++ (cube root)Cifra de control a unui numărVerifică dacă o literă este vocală în C++Complexitatea unui algoritm (timp și spațiu) în C++Maximul și minimul unui vector în C++Suma elementelor unui vector recursiv în C++Inversarea unui vector în C++

© Drepturi de autor

Echipa InfoAs își rezervă drepturile de autor pentru conținutul acestei pagini. Copierea conținutului fără acordul scris expres al InfoAs reprezintă o încălcare a Legii 8/1996 și va fi tratată ca atare.

Trimite lecția

Toată lecția

Doar videoclipul pe YouTube

Informatica devine ușoară cu InfoAs

Intră în cont