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

Obține medalia mult dorită. Devino As la olimpiadă.

Curs complet de olimpiadă, pregătit de olimpici de la Oxford și TU Delft.

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