The variable ipppoints to the variable ip1because of this statement
ipp=&ip1;
Thus, any dereferencing of a pointer ippgives the value of a pointer ip1. So, for example, this statement
*ipp=ip2;
equivalently
ip1 = ip2;
and this statement
*ipp=&k;
equivalently
ip1 = &k;
As a result, it ip1contains the address of the variable k, but it ippcontains the address of the variable itself ip1.
And these statements
cout<<*ip1<<endl;
cout<<**ipp;
, , < < endl . k.