Как выполняется распределение памяти для массива указателей на символы и двойного указателя.
char *s[]={"knowledge","is","power"};
char **p;
p=s;
cout<<++*p;
В приведенном выше коде выходной данные компилятора
nowledge
Мой вопрос заключается в том, как значения присваиваются указателю p и как он увеличивается.
Операторы ++
а также *
иметь одинаковый приоритет и оба ассоциативны справа налево, это означает, что самый правый оператор (*
) выполняется первым. Значение *p
указатель на первый символ первой строки Оператор ++
увеличивает его, делая указатель на второй символ первой строки. Вот как вы получаете «сейчас».
Других решений пока нет …