Cita:
Iniciado por CalgaryCorpus El cast en C tiene mucha precedencia. Le dice al compilador las intenciones del programador.
De a poco:
&x -> direccion de memoria de x
(int *) expresion -> no importa lo que expresion sea, tratese como (int *) (adios const, si es que lo habia)
* puntero -> desreferenciacion de puntero
Código Para que quede como tabla ...:
Ver originalm.f() -> const int & -> la referencia
&m.f() -> & ( const int & ) -> la direccion de memoria de ella
(int*) &m.f() -> (int *) -> tratese como int *
* ( int * ) -> int -> desreferenciarlo
He entendido casi todo menos la ultima parte del desferenciarado para que quieres hacer el puntero nulo ?
Solo esta parte si no me equivoco devuelve un puntero int * : (int *)&m.f() ?
Sin el *()
Yo por desferenciar entiendo anular el puntero y si lo anulas y luego asignas el tres al puntero no tiene sentido ?
Creo que me equivoco ?