I am trying to give the answer for ur 3rd question
Difference between arrays and pointers
Basically arrays are used to store the elements of same data types(like integers,float,String,characters etc)
U cannot store different types in array(i.e int,float,double cannot be stored in one array)
this can be done with the help of structure(in c) or classes( in java or c++)
Regarding pointers are the variable which holds the address of some variable.
with the help of pointers u can find the address of the variable where excatly it is located by compiler.
when u declare this statement the compiler will allocate 4 bytes of memory to variable a and stores value 10.
but if I want to find the location where excatly it is located then we have to use pointers.
declare one pointer variable of int type
and assign the address of varible a in p with help of & operator
when u print p it will give some address i.e where a is located.