Pointers are the nirvana of C ;-). Also the place where most of that proverbial lot of rope you get to hang yourself with is located . The idea behind pointers results from one of the efficient programming principles, which is 'move pointers, not data'. Assuming data size is larger than any type representable in a register, this makes immediate sense. You will have a (one or several) small window of the large data which you see, and the pointer is what points to the window. Through the window (pointer) you can access your data, for read, or write. In C pointers require explicit manipulation by the programmer (unlike other languages, like BASIC which is pointer-less). Using pointers on strings (and especially avoiding copying at any cost) will cause a relatively small RAM consumption for your code. This applies for PICs and for other architectures too. Pointers go far beyond strings, and are key components for writing for example byte code interpreters (where pointers to functions are often used, at least in the development stage). hope this helps, Peter -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.