Answer: Option C
Explanation:
Normal variable means it stores the values directly. But if you want to change those values without touching those variables we are using pointers.
Pointer is a one type of variable it holds the address of the variable.
int a=5; // suppose a variable address is 100
int *p;
p=&a;// here p(pointer variable)holdes the address of the a variable.
The answer can be summarized as follows...
[A] A keyword used to create variables -> Wrong. A pointer is NOT a keyword.
[B]. A variable that stores address of an instruction -> Wrong. Though a pointer may hold the address of an instruction (i.e. function pointer), it is no required to
[C]. A variable that stores address of other variable -> Correct. A pointer is a variable that stores the address of any other variable be it a value or another address.
[D]. All of the above -> Wrong as A and B are incorrect.