My reply is pokey as all hell, but...
Code:
#include <iostream>
using std::cout;
int main(void)
{
const char a = '5', c = '*';
const char *b, *d;
const char **x;
b = &a;
x = &b;
cout << "&a = " << static_cast<const void*>(&a) << ", "
<< "&b = " << static_cast<const void*>(&b) << ", "
<< "&c = " << static_cast<const void*>(&c) << ", "
<< "&d = " << static_cast<const void*>(&d) << "\n";
cout << "x = " << static_cast<const void*>( x) << ", "
<< "*x = " << static_cast<const void*>(*x) << ", "
<< "**x = '" << **x << "'\n";
b = &c;
cout << "x = " << static_cast<const void*>( x) << ", "
<< "*x = " << static_cast<const void*>(*x) << ", "
<< "**x = '" << **x << "'\n";
d = &a;
x = &d;
cout << "x = " << static_cast<const void*>( x) << ", "
<< "*x = " << static_cast<const void*>(*x) << ", "
<< "**x = '" << **x << "'\n";
d = &c;
cout << "x = " << static_cast<const void*>( x) << ", "
<< "*x = " << static_cast<const void*>(*x) << ", "
<< "**x = '" << **x << "'\n";
return 0;
}
/* my output
&a = 0022FF77, &b = 0022FF70, &c = 0022FF76, &d = 0022FF6C
x = 0022FF70, *x = 0022FF77, **x = '5'
x = 0022FF70, *x = 0022FF76, **x = '*'
x = 0022FF6C, *x = 0022FF77, **x = '5'
x = 0022FF6C, *x = 0022FF76, **x = '*'
*/