From the Arduino FAQ- Can I program the Arduino board in C?:
In fact, you already are; the Arduino language is merely a set of C/C++ functions that can be called from your code. Your sketch undergoes minor changes (e.g. automatic generation of function prototypes) and then is passed directly to a C/C++ compiler (avr-g++). All standard C and C++ constructs supported by avr-g++ should work in Arduino. For more details, see the page on the Arduino build process.
You can do any C or C++ coding directly in the Arduino IDE. You can also directly access the Arduino's mcu's ports and registers using the appropriate information. The Arduino IDE isn't limited to Arduino functions. It's just limited as a glorified text editor with a few compiling options.
The Amtel AVR Studio, or the AVR=Plugin for the Eclipse IDE are other options.
However if you solely need to begin using a real development environment on a Windows based OS, AVR Stduio version 6 is free and uses a Mircrosoft Visual Studio environment. Or if you want something a bit older/easier, AVR Studio 4.0 is a great beginner's place to start!