Char Pointer array memory allocation

烂漫一生 提交于 2019-12-11 18:06:56

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!