问题
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