View Full Version : [C] domandina sui puntatori...
nico88desmo
10-01-2007, 17:57
domanda semplice semplice..qual'è la differenza tra queste variabili?
1) int *(*c);
2) int **c;
3) int (*c)[10];
nico88desmo
10-01-2007, 18:52
up...
zakmckraken
10-01-2007, 20:02
Mi sembra sia qc.del genere
int* sono_un_array_di_ptr_a_int[10];
int sono_un_array_di_int[10];
//Array di puntatori
int *(*a);
//Array di puntatori
int **b;
//Puntatore ad array di interi
int (*c)[10];
//Tanto per chiarire
a=sono_un_array_di_ptr_a_int;
b=sono_un_array_di_ptr_a_int;
c=&sono_un_array_di_int;
//E per confondere un po...
sono_un_array_di_ptr_a_int[0]=sono_un_array_di_int;
nico88desmo
10-01-2007, 20:10
grazie a entrambi! mi erano venuti dei dubbi! :p
jappilas
10-01-2007, 23:28
//Puntatore ad array di interi
int (*c)[10];
ehm, questo non è un array di dieci puntatori ad altrettanti int ? ma prob sono io arrugginito :stordita:
//E per confondere un po...
sono_un_array_di_ptr_a_int[0]=sono_un_array_di_int;
//e questo? :D
sono_un_array_di_array_di_int[0]=sono_un_punt_a_int;
1) int *(*c);
2) int **c;Sono praticamente uguali (le parentesi non cambiano in questo caso nulla), "un puntatore ad un puntatore ad int".
Ecco un esempio di utilizzo:
int **c;
int val = 10;
int *pval = &val;
c = &pval;
printf ("%d\n", **c); /* stampa 10 */
3) int (*c)[10];È un "puntatore ad un array di 10 int".
Ecco un esempio di utilizzo:
int (*c)[10];
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
c = &arr;
printf ("%d\n", (*c)[2]); /* stampa 3 */
trallallero
11-01-2007, 12:32
e questo ? :ciapet:
char *(pippo::*p)(int *)
trallallero
11-01-2007, 12:59
ma i :: in C si possono usare?? :D
'azz! é vero :doh:
vabbé dai C, C++ cosa cambia ? :D
char *(pippo::*p)(int *)In teoria dovrebbe essere un "puntatore ad una funzione membro della classe 'pippo' che prende in input un puntatore a int e restituisce un puntatore a char".
Nella pratica non so se è corretto/valido ... non credo :stordita: ... mai viste cose del genere. :eek:
trallallero
11-01-2007, 13:10
In teoria dovrebbe essere un "puntatore ad una funzione membro della classe 'pippo' che prende in input un puntatore a int e restituisce un puntatore a char".
Nella pratica non so se è corretto/valido ... non credo :stordita: ... mai viste cose del genere. :eek:
penso sia corretto, dovrebbe essere come dici tu un puntatore a metodo.
visto che ci siamo, ho trovato su internet questo:
int (Pointer::*pmf)(int) = &Pointer::Work;
ma chiedo (a chi ne sa di piú):
in C basta il nome della funzione per il suo indirizzo, perché in questo caso ci mette la & ? :mbe:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.