Flexible use of pointers in C language