untung99.homes: Pointeri in C Introducere
Untung99 menawarkan beragam permainan yang menarik, termasuk slot online, poker, roulette, blackjack, dan taruhan olahraga langsung. Dengan koleksi permainan yang lengkap dan terus diperbarui, pemain memiliki banyak pilihan untuk menjaga kegembiraan mereka. Selain itu, Untung99 juga menyediakan bonus dan promosi menarik yang meningkatkan peluang kemenangan dan memberikan nilai tambah kepada pemain.
Berikut adalah artikel atau berita tentang Harian untung99.homes dengan judul untung99.homes: Pointeri in C Introducere yang telah tayang di untung99.homes terimakasih telah menyimak. Bila ada masukan atau komplain mengenai artikel berikut silahkan hubungi email kami di koresponden@untung99.homes, Terimakasih.
Se intampla de multe sa stii intr-un program care este acel loc in care se stocheaza o variabila. Poate ca nu este cu adevarat nevoie la un examen sa stii asta, dar poate cauti in profunzime sa intelegi ce se intampla cand dai de o problema. In cele ce urmeaza iti explic valoarea unui pointer.
Pana acum stiam ca o variabila este definita prin doua caracteristici: denumire si valoare. Acum vom invata faptul ca defapt sunt 3 caracteristici: denumire, valoare si adresa din memorie.
Memoria interna a calculatorului este organizata sub forma unei matrici imense, in care fiecare patratica reprezinta un loc in care pot fi stocate diferite informatii. Fiecare patrat este numerotat consecutiv in baza 16 incepand de la 0. Aceste numere se numesc adrese de memorie.
Pointerii pot sa pastreze adrese de memorie ale altor variabile (care la randul lor sa contina alte valori). Un pointer este asociat intotdeauna unui tip de variabila (int, char, bool, s.a.m.d.). Pointerul indica defapt o zona din memoria calculatorului.
Declararea variabilelor de tip pointer
Pointerii se declara in felul urmator:
tipData *denumire;
De exemplu pentru a declara un pointer pentru o variabila int, vom scrie: int *p;
Aveti grija in schimb, daca scriem int *p1, p2; Doar p1 va fi de tip pointer, p2 va fi de tipul int, exact cum am invatat pana acum.
Operatorul & (de adresare / referinta)
Se aplica unei variabile si afiseaza adresa de memorie a variabilei (sau a vectorului, cum vom vedea putin mai in-colo). Luam urmatorul exemplu:
#includeusing namespace std; int main() { int a = 17; int *p = &a; cout <<> Se va afisa 17 si adresa din memoria a lui a.
Operatorul * (de dereferentiere)
Acest operator se aplica unei variabile de tip pointer, iar daca am scrie urmatoarea linie in programul de mai sus, am obtine valoarea care este stocata in a.
cout <<>Pointeri si vectori
Denumirea unui vector este de fapt un pointer catre primul sau element. Daca rulam urmatorul cod putem observa urmatoarele:
#includeusing namespace std; int main() { int v[4] = {7, 1, 2, 6}; cout <<> <><>La declararea unui vector de 4 elemente, acestuia ii se atribuie exact 4 patratele in memorie unul langa altul. Pentru a intelege mai bine acest concept, haideti sa vedem ce se intampla linie cu linie daca rulam urmatorul cod:
#includeusing namespace std; int main() { int v[5]; int *p; p = v; *p = 13; p++; *p = 2; p = &v[2]; *p = 7; p = v + 3; *p = 22; p = v; *(p + 4) = 55; for(int i = 0; i <5;> <>
- p = v; pune pointerul catre inceputul vectorului
- *p = 13; va pune pe prima pozitia a vectorului elementul 13;
- p++; muta pozitia lui p catre urmatorul element (elementul 1)
- *p = 2; va pune numarul 2 pe pozitia 1 din vector
- p = &v[2]; memoreaza in p adresa elementului nr 2
- *p = 7; va pune numarul 7 pe a doua pozitie
- p = v + 3; va muta pointerul p la al 3-lea element;
- *p = 22; va pune 22 pe a 3-a pozitia
- p = v; muta inapoi pointerul p catre inceputul vectorului
- *(p + 4) = 55; va pune numarul 55 pe ultima pozitie din vector
Exercitii rezolvate (in videoclip)
1. Cum o sa arate v dupa ce se executa chestia de mai jos:
int v[4] = {5, 2, 89, 1}; int *p = v; p++; p++; *p = 13; p = &v[0]; p = v + 2; *p = 89; p = v-1; *p = 22;2. Care va fi valoarea lui a si valoarea lui b dupa executarea urmatoarelor instructiuni:
int a = 10, b = 13; int *p1, *p2; p1 = &a; p2 = &a; *p1 = 4; *p2 = 5; p1 = p2; p1 = &b; *p1 = 20; *p2 = 21;3. Care va fi valoarea lui a si valoarea lui b dupa executarea urmatoarelor instructiuni:
int a = 10, b = 13; int *p1 = &a, *p2 = &b; *p1 = *p2 + 10; p1 = p2; *p2 = *p1 + 10;5;>
}}}