What's faster, pointers manipulation or subscripting with arrays/structs?

Also, I have read that if having lots of global vars, it is better to join them in a typedef struct and create a global register var pointer to them. Something like this:

Code:
typedef struct {
int a
int b
char s[10];
...
} t_data;

register t_data *p
Access global data as p->a, p->b, etc..... This look liike faster but why? is this trick speed improvement.
Thx.
FS