When you declare near, far, and huge variables, the Microsoft C/C++ compiler and linker automatically manage details such as allocating memory and keeping track of segments.
A “based pointer” is a fourth kind of pointer that operates as a 16-bit offset from a base that you specify. In this respect, based addressing differs from near, far, or huge addressing; you're responsible for naming the base, instead of letting the compiler decide. They are explained in more detail in “Using Based Pointers and Data”.