As far as my understanding of
languages goes, a buffer is any
portion of memory in which a data is
stored like an int,float variables,
character arrays etc.
Well, not just any data, if that was the case all variables would be stored in buffers, and the term would be pointless.
A buffer is something that you use for temporary storage when data comes from one place and goes to another. Usually a buffer holds a lot more than a single variable, but there is of course special cases where a buffer is quite small also.
A local variable could be used as a buffer, so that would be allocated on the stack, but as buffers are usually large it would be impractical to use up a lot of stack space, so they are usually allocated somewhere else.
One example where a buffer is used, is when your program read from a file. At the lower level a disk can only be read in units of sectors, so the system reads a bunch of sectors into a buffer, and then your program reads from the buffer.