A pointer can only point to one thing at a time. If you look at, say, line 11-14, you declare only one pointer, then assign it the address of three different variables. In the end, it only holds the address of the third. Second, line 16 is specifically a pointer to a pointer. You can't make it hold the address of something that is not actually a pointer as well. In other words, a double-pointer only points to pointers, while pointers can point to... well, anything, really. But they can only point to one thing at a time.
# include <iostream>
usingnamespace std;
int main()
{
double d1 = 7.8;
double d2 = 10.0;
double d3 = 0.009;
double *ptr1,*ptr2,*ptr3;
ptr1 = &d1;
ptr2 = &d2;
ptr3 = &d3;
cout << "The value of d1 is : " << d1 << endl;
cout << "Or at this way " << *ptr1 << endl;
cout << "The address of d1 is : " << &d1 << endl;
cout << "Or at this way " << ptr1 << endl;
/// Same thing for the other varaibles
double **dp;
dp = &ptr1;
cout << "The value of d1 is : " << **dp << endl;
cout << "The address of d1 is : " << *dp << endl;
cout << "The address of dp is : " << dp << endl;
return 0;
}