char**
to:
const char**
Here's the code (written originally by James Kanze):
const char c = 'a';
char* p;
char** pp = &p;
const char** ppc = pp; // Supposing that this were not illegal.
*ppc = &c; // Oops: where does p point?
*p = 'b'; // And what is wrong here?
I've read the above code many times but never understood it. Even when I
thought about it thoroughly and slowly, I couldn't comprehend what was
going on.
Anyway, I came across the code again today, and finally I resolved to
grasp an understanding of it once and for all. So I drew a diagram, which,
after a few minutes of analysing, made me understand. With the hope of
helping others, here's the diagram:
http://img315.imageshack.us/img315/2876/undconst6kk.jpg
I've posted this to more than one newsgroup, so if you would like to
reply, I'd appreciate if you would keep the discussion in comp.lang.c++.
-Tomás
---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std...@ncar.ucar.edu ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]