Depends on what the pointer was addressing in the first place!
If you had an array of integers:
int ar[10];
int* p = &(ar[7]);
then
p++;
and
p = &(ar[8]);
are equivalent.
"but in array we have only 10 location & in case of a variable to which it points, then what will be the next location of pointing and how will it be decided?"
If you mean:
int ar[10];
int* p = &(ar[7]);
p++; p++; p++;
The pointer is now invalid. Provided you do not try to read from it
int i = *p;
or write to it
*p = 6;
then you will not get an error. But it is irrelevant where it is pointing: it is outside the range of valid addresses for the array. Using it will cause problems, either spotted at run time, or corrupting other data and resulting in strange errors.
"so Do you mean that is it a pointer pointing to unknown location but still we can increment it?"
Yes. A pointer is just a number - it has no relevance until it is used. Think about it as an array index in a variable:
int ar[10];
int index = 7;
int i = ar[index];
is fine, no problems.
index = 10;
Is also fine. It's only when you try to use the index that you get problems:
index = 10; ar[index] = 6;
If your pointers were checked when you assigned them, you could not use them effectively: is it invalid to replace a pointer into one array of int values with an address in another array of integers?