Documente Academic
Documente Profesional
Documente Cultură
Operatii Cu Pointeri
Operatii Cu Pointeri
Operator de refereniere
&
Operator de derefereniere
*p
05.06.2013
p = &a;
q = p; *q = 7; p
100 104
a
106
q 104
104
05.06.2013
Atribuire
Operatorul de atribuire = Numai ntre pointeri de acelai tip int *p, *q; float *r, *s; p = q; r = s; p = r; s = q;
05.06.2013 4
p
100 104
a
100
p
104
05.06.2013
Incrementare / decrementare
Modificarea valorii operandului cu o unitate int a, b, c, *p; p = &a; p++; p--;
a
200 202
b
204
c
206
p 202 204
05.06.2013
Incrementare / decrementare
Modificarea valorii operandului cu o unitate float a, b, c, *p; p = &a;
300
a
304
b
308
c
300
p 308 304
p++; p--;
05.06.2013
p+5 q = p + 5;
220
p
224
p = q - 2;
200 206
210
p+5
05.06.2013
p+5 q = p + 5;
240
p
244
p = q - 2;
200 212
220
p+5
05.06.2013
Operatori relaionali
Toi operatorii relaionali: <, >, <=, >=, ==, != Valoarea nul pentru pointeri (pointerul nul)
NULL
05.06.2013
10
Funcii importante
malloc tip *p; p = (tip*) malloc(dimensiune); free free(p);
05.06.2013
11
SD / SS
Heap
1000
33 p
100 104
q 7400
7400
1000
05.06.2013
12
200
202
204
206
208
210
212
214
216
p
220
200
p+5
a+5
p = a; a = p;
p = a + 6;
p[0]
p[2]
05.06.2013
13
p+3
a+3 *(a+3)+2
p = a;
p[3][2] a[3][2] *(*(p+3)+2) *(p+3) p+3 *(*(a+3)+2) *(a+3)+2 *(a+3) a+3 a[3][0] ???
05.06.2013
14
Declarare
tip p[dim];
Alocare
-
Alocare
p = (tip*) malloc( n * sizeof(tip));
Utilizare
p[i] -
Utilizare
p[i] free(p);
05.06.2013
15
Heap
p+i
*(p+i)
Spor la nvat!