Fred2, another char * is set equal to fred. That is, it contains the same address that fred has and so when fred2 is output, you see "text". Fred takes on another value later but Fred2 still points to the text that Fred initially pointed to.
Ptrb, like d is an int pointer that initially points to d. The value contained in *ptr (at this point it is still 46) is copied into c. Now notice the difference between
*++ptraand
++(*d)The first one increments the pointer ptra so it points to the next int after a (if there is one). ++ (*d) however increments what d points to, which is a so*d and a both have the value 47. You can see how confusing pointer expressions can get! Pointers let you write some really unreadable code. In the next lesson, we'll look at how to understand complex pointer declarations.
On the next page : Example 1 Explained (Continued)

