Most of your programs will have at least one file with a .C extension. All C programs normally use this extension. In addition, you may have one or more header files with the.H extension. If you use functions from the C libraries, you'll include the header files so the compiler knows what it is dealing with. Depending on the type of compiler you use and the environment you use, object files will either have a .O or a .OBJ extension. These are pretty much a pre-compiled library version of you functions and program. finally, the default output is either A.OUT or .EXE depending again on the compiler and the environment.
If you use an IDE, then there will be additional file types such as project .PRJ or similar file types that may be IDE specific. These files are really just a means of holding all the compile settings for your entire project.
There may also be other files that are both compiler, project and environment specific such as .ICO for a Windows icon graphic. You may have a MAKEFILE which is basically a compiler script to build a larger project.
Any text editor or IDE can open the .C and .H files. These are basic text files though an IDE will usually have syntax highlighting and similar features to help you see what you are doing. At a minimum, any program that can read and write text files will allow you to write C programs.
Next, the compiler will use your .C and .H files to make .OBJ or .O files. This is a sort of intermediate step in making an actual program you can run.
Lastly, a linker will combine all the .OBJ or .O files into a an executable which may or may not have a .EXE or perhaps simply A.OUT as the file name.
It appears to be a long process, but any IDE will automate most of this and it will be nearly invisible when you build a project.
I send most people to http://cprogramming.com since they have a number of links to free C/C++ tools as well as tutorials. It is one of the better C resources I've found on the net.
Shadow Wolf