You CAN make just about anything a constant. But if you did that, you would have to initialize the pointers when you created them, and could never dynamically allocate more memory.
This could be useful, though, because a pointer uses much less memory (potentially) than the object to which it points. That way, you could save yourself (potentially, again) A LOT of over head from passing arguments to functions.
For instance, if you created a user-defined object that took up, say, 100 bytes of memory (maybe it's a class that contains 100 chars). To pass that to a function would require an entire copy of the class, and the time it took to create the copy.
But, the pointer to the class, since it only contains an address, might be only 1 byte, or maybe 2, or 4, depending on the system. Either way, it's considerably smaller than 100, so it would (potentially) save your program processing time to be using only pointers instead of complete objects.