问题
How the memory allocation is done for a char pointer array and double pointer.
char *s[]={"knowledge","is","power"};
char **p;
p=s;
cout<<++*p;
In the above code output given by compiler is- nowledge
My question is just , how the values are assigned to pointer p and how it's incremented.
回答1:
The operators ++ and * have the same precedence and are both right-to-left-associative, which means that the rightmost operator (*) is executed first. The value of *p is a pointer to the first character of the first string. The operator ++ increments it, making it the pointer to the second character of the first string. That's how you get the "nowledge."
来源:https://stackoverflow.com/questions/51904617/char-pointer-array-memory-allocation