You can't use &
operator to declare pointer in C. Standard doesn't allow this. When you declare pointer in C like:
int *val_ptr;
then *
in the declaration is not the dereference (indirection) operator. But when this *
comes in a statement then it performs indirection.