I'm sure there are many different ways to keep track of multiple open files. But let me try to explain what a struct is:
A struct is just a chunk of data. It's the primary way in C to define your own kinds of data. If the built-in data types (int, char, float, etc.) are not enough to satisfy your needs, you can make up your own, composed of existing data types. A struct takes up as much memory as its constituent data, so it's best to be prudent with how much data you put into a single struct.
For example:
Code:
struct TextFile
{
char filename[20];
char contents[5000];
}
Here's a structure representing a text file. The filename contents are kept in static arrays. This is a poor approach, because it limits your file size to 5000 characters (and the filename to 20 characters). Not only that, but every single instance of this structure will consume about 5020 bytes, even if the file only contains 10 bytes of text.
Here's a better way:
Code:
struct TextFile
{
char * filename;
char * contents;
}
Here, pointers are used instead of static arrays. to the actual contents of the file. The actual file contents could be very large, and we don't want to try to cram all of it inside the structure itself. IIRC, pointers use 4 bytes on x86, so the above structure would consume about 8 bytes for each instance, which is pretty small. Then, you'd just allocate memory for filename and contents (using malloc() in C, or 'new' in C++) whenever you are ready to store something in them. This way, there's no built-in restriction on how big the file can be, and you're not wasting unneeded bytes for very small files.
So yes, to answer your question, in most sensible text editors, the actual contents are probably stored elsewhere, and just accessed via a pointer.
As for having multiple files open, you could do it one of several ways. Perhaps there's an array of pointers to open files (an array of pointers to TextFile structures), or a linked list, or another structure that keeps track of what files are open and which one is active. Then, when switching between open files, it just looks in the appropriate TextFile structure, and displays the contents stored therein.
I hope this helps clarify things a bit

Modern text editors are undoubtedly more complicated than this, so if you're still learning about how they work, you may want to look at the source code for the simplest text editor you can find. Good luck!