 Pointers are frequently used with C strings, which are arrays of characters. For example, here's some code to determine the length of a string that ends with a null character. Let's step through this code and see how it works. In the while loop test, the character pointed 2 by P is not the null character, which means we do the body of the loop. We add 1 to the number of characters and advance the pointer to the next element in the array. This A isn't the null character either, which means we have to do the body of the loop again and add 1 to the number of characters and advance the pointer. The N isn't the null character, and we perform the loop body again, adding 1 to the number of characters and advancing the pointer. The D isn't a null character, and we perform the loop body again. Now the pointer points to the null character, the loop ends, and our character count reflects the length of the string. Take another look at the code. In the test, we retrieve the pointed 2 character, and we increment the pointer afterwards in the loop. We can combine these into one post increment expression. Let's go through the loop again, step by step. The dereferencing picks up the letter H, and the plus plus advances the pointer. The H we picked up is not the null character, so we add 1 to end char's and return to the top of the loop. Star P picks up the letter A, and plus plus moves the pointer forward. The A isn't the null character, and we add 1 to end char's. Back at the top of the loop, star P picks up the letter N, and plus plus moves P forward yet again. It's not a null character, and we add 1 to end char's. Continuing this way, eventually the pointer encounters the null character, and the loop ends with the correct count. There are two more things that you can do to shorten the code even further. The first is to take advantage of the fact that, in C, you can use integers as booleans. In C, 0 is considered false, and anything non-zero is considered to be true. So you could rewrite this condition this way, but you shouldn't. In this instance, you want to make the condition explicit, rather than relying on people's implicit knowledge of the correspondence between integers and booleans. However, when dealing with character strings, the convention is to use the fact that the null character has a value of 0. Instead of writing this condition, you take advantage of the fact that the null character is the equivalent of false, and anything that isn't the null character is true. This is incredibly common in C code that other people write, so you may as well get used to it. There's even one more way to shorten this code. If you think of the erase start as a pointer, when the loop has finished, pointer P is 4 bytes away from the pointer word. You can thus make the loop body empty, and subtract the pointers to figure out the string length. Again, this is something you will see people doing quite often, even though I'm not convinced that this particular trick helps readability. In summary, learn to use pointers when iterating through a string. It'll come in handy when you start using functions from the string library. They're all defined in terms of pointer to char.