I've been going through Kernighan and Ritchie book in C and got lost in pointers to pointers that point to char arrays.

Let's take this sample code:

```
char str1[] = "This ";
char str2[] = "is ";
char str3[] = "a cat.";

char *ptr1 = str1;
char *ptr2 = str2;
char *ptr3 = str3;

char *ptrall[] = { ptr1, ptr2, ptr3 };

```

Question:
How do I print all of the arrays using, say, while?

The book tells me (quote):

> 
> 
> ```
> while (...){
>    printf("%s\", *ptr++);}
> 
> ```
> 
> 

So, this `*ptr++` is supposed to increment pointers within `**ptr`. But When I try to build it in VS it says there's the "lvalue" mistake.

What do I misunderstand here? How should I increment pointers stored in \*\*?
Am I limited to `printf("%s", ptr[i++])` only?