Распределение памяти массива указателей Char

Как выполняется распределение памяти для массива указателей на символы и двойного указателя.

char *s[]={"knowledge","is","power"}; 
char **p;
 p=s;
 cout<<++*p;

В приведенном выше выводе кода, предоставленном компилятором is- nowledge

Мой вопрос заключается в том, как значения присваиваются указателю p и как он увеличивается.

1 ответ

Операторы ++ а также * имеют одинаковый приоритет и оба ассоциативны справа налево, что означает, что самый правый оператор (*) выполняется первым. Значение *p указатель на первый символ первой строки Оператор ++ увеличивает его, делая указатель на второй символ первой строки. Вот как вы получаете "сейчас".

Другие вопросы по тегам