As far as I know
(*char)
,
(*float)
are noty valid
C
constructs.
(char *)
and
(float *)
are used to cast respectively to pointer to char and pointer to float, e.g.
char * pc = (char *) malloc( 100 );
char * pf = (float *) malloc( 100 * sizeof(float));
int(*p)[3];
declares
p
as
a pointer to an array of three integers:
int(*p)[3];
int k[3] = {1,-2,0};
p = &k;
int *p[3];
declares
p
as
an array of three pointers to integers:
int *p[3];
int i=5;
int j=7;
p[0] = &i;
p[1] = p[2] = &j;