Are the following assignments valid? Or will any of these create problems. Please suggest.
const char * c1;
const char * c2;
const char * c3;
char * c4;
c2 = c1;
c2 = c3;
c2 = c4;
What if I do the following, is that ok thing to do?
const char * c5 = "xyz";
char * c6 = "abc";
c2 = c5;
c2 = c6;
In your mind draw a line through the asterik. To the left is what is being pointed to and to the right what type of pointer
For example
const char * const p
- The pointer p
is constant and so are the characters that p
points to - i.e. cannot change both the pointer and the contents to what p
points toconst char * p
- p
points to constant characters. You can change the value of p
and get it to point to different constant characters. But whatever p
points to, you cannot change the contents.char * const p
- You are unable to change the pointer but can change the contentsand finally
char * p
- Everything is up for grabsHope that helps.
All are valid statements as along you don't dereference them because all the pointers are left uninitalized or aren't pointing to any valid memory locations.
And they are valid because pointer is not constant but the value pointed by the pointer is constant. So, pointers here are reassignable to point to a different location.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With