Ce afiseaza urmatoarea secventa:
int *a, n=10;
a = new int[n];
for(int v=1, *p=a; v<40 ; v *= 3,p++){ *p=v; }
for(int i=0;i<5;i++){cout << a[i] << " "; }
delete []a;
Ați putea va rog să îmi și argumentați rezultatul? Ce fac mai exact anumite secvențe pas cu pas? Mulțumesc!
Răspunsuri la întrebare
Răspuns de
1
new int [n] aloca spatiul necesar stocarii a n date de tipul int
a=new int[n] pointerul "a" retine adresa din memorie a spatiului alocat
in primul for , pointerul p indica locul din vector unde va fi retinuta valoarea lui v ( incepe de la a ( locul unde incepe spatiul alocat ) si merge din 1 in 1 )
asa ca valorile lui v vor fi retinute pe pozitii consecutive
v merge de la 1 la 40 cu pasul v*3 adica ia valorile 1 3 9 27
al 2-lea for afiseaza elementele vectorului spre care arata pointerul a adica
1 3 9 27 si un 0 deoarece a 5-a pozitie alocata este libera .
delete[]a sterge blocul de memorie alocat stocarii
Practic afiseaza 1 3 9 27 0
Daca e vre-o anumita secventa pe care nu o intelegi poti sa intrebi .
Sper ca se intelege
a=new int[n] pointerul "a" retine adresa din memorie a spatiului alocat
in primul for , pointerul p indica locul din vector unde va fi retinuta valoarea lui v ( incepe de la a ( locul unde incepe spatiul alocat ) si merge din 1 in 1 )
asa ca valorile lui v vor fi retinute pe pozitii consecutive
v merge de la 1 la 40 cu pasul v*3 adica ia valorile 1 3 9 27
al 2-lea for afiseaza elementele vectorului spre care arata pointerul a adica
1 3 9 27 si un 0 deoarece a 5-a pozitie alocata este libera .
delete[]a sterge blocul de memorie alocat stocarii
Practic afiseaza 1 3 9 27 0
Daca e vre-o anumita secventa pe care nu o intelegi poti sa intrebi .
Sper ca se intelege
McKenzy:
Multumesc frumos de explicatie! In al doilea for, daca as fi avut de la i=0 la i<6, ar fi afisat 1 3 9 27 0 0? Pentru fiecare pozitie neocupata se mai adauga un zero?
Alte întrebări interesante
Chimie,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Engleza,
9 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă
Franceza,
9 ani în urmă