Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGianpiero Mazza Modificato 10 anni fa
1
AN Fondam98 Puntatori Azioni e procedure Assegnamenti, indirizzi e puntatori
2
AN Fondam98 Puntatori Una procedura senza effetti void f( int x, int y){ int z=x; x = y; y = z; } int a=3; int b=4; f(a,b); 3 a 4 b
3
AN Fondam98 Puntatori C / Java x=y copia il valore 4 nella cella di indirizzo che contiene la copia di a 3 a 4 b 3 x 4 y
4
AN Fondam98 Puntatori Una procedura che scambia void f( int x[]){ int z=x[0]; x[0] = x[1]; x[1] = z; } int[] a={3,4}; f(a); //a e cambiato 3 a 4
5
AN Fondam98 Puntatori Java a 4 3 a[0] a[1] x x[0] = x[1]; copia il valore 4 nella cella di indirizzo
6
AN Fondam98 Puntatori C 3 a 4 x x[0] = x[1]; copia il valore 4 nella cella di indirizzo
7
AN Fondam98 Puntatori Gli operatori & e * del C int x = 3; x = x; R-value L-value &x&x *(&x)
8
AN Fondam98 Puntatori Gli operatori & e * del C int x = 3; Lassegnamento *&x = *&x+1; equivale a x = x+1;
9
AN Fondam98 Puntatori Puntatori in C int* x; la variabile x e un puntatore, destinata ad avere come r-value lindirizzo di una cella di memoria
10
AN Fondam98 Puntatori Puntatori in C int* x; int y = 4; x = &y; x 4 y
11
AN Fondam98 Puntatori Puntatori in C int* x; int y = 4; x = &y; x 4 y R-value di x = L-value di x = R-value di *x = 4 L-value di *x =
12
AN Fondam98 Puntatori Operazioni sui puntatori u Assegnamento di valori (compatibili) –espressi come indirizzi di variabili –espressi come valori di puntatori –espresso come NULL (#include ) u Applicazione delloperatore * (dereferenziamento) u Confronti con valori di altri puntatori u Operazioni + e -
13
AN Fondam98 Puntatori Puntatori e type system int x = 3; double y = 3.0; int* px = &x; double* py = &y; int* q; q = px; //ok q = py; u Warning: assignment from incompatible pointer type
14
AN Fondam98 Puntatori Puntatori e type system int x = 3; double y = 3.0; int* px = &x; double* py = &y; int* q; *px= *py = 5.4; //ok cambiano i valori associati a y e a x u x vale 5
15
AN Fondam98 Puntatori La procedura swap (in C) void swap( int* x, int* y){ int z = *x; *x = *y; *y = z; } int a=3; int b=4; swap(&a,&b);
16
AN Fondam98 Puntatori C *x = *y copia il valore 4 nella cella di indirizzo ottenuto come l-value di *x 3 a 4 b x y
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.