If you want something that will work on any (desktop or notebook) platform, I'd recommend Code::Blocks. That's free, open source, actively developed, and works with a number of different compilers. I think it works best with the GNU compilers and gdb debugger, and those come in a bundle for Windows users that don't have an easy way to install them. Mac OSX comes with gcc and g++ automatically, and Linux distros all include gcc (C compiler) and either have g++ or have an easy way to get it. So, for Windows, get the download with MinGW ("Minimalist Gnu for Windows") included.
http://www.codeblocks.org
If you plan to develop for Windows, the Visual Studio Express Editions are a good choice. Free to download and use, no restrictions or royalties on the object I still use the 2008 version (more stable) but only the 2010 and 2012 versions are available for download now, as far as I know. I do use 2010 and 2012 for more C++11 support. (...but GNU has more of both C++11 and C99 implemented--see Code::Blocks above).
The 2012 express version is more like visual studio: One tool for all four MS languages (C#, VB, C++, C). The 2010 versions are three separate downloads for C#, VB, C/C++.
http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products
If you develop on a Mac, get Xcode. The current version requires a paid developer registration (annual fee) but older versions can be downloaded at no cost using a free Apple ID login. Begin your search at:
http://developer.apple.com
Other choices include Eclipse (pretty good) and Netbeans (not so stable, last time I tried it), but those are primarily Java IDEs and the editor is not as C/C++ aware as C::B or Visual Studio. Lots of people like the old Bloodshed Dev-C++ IDE. That's Windows-only, though, and hasn't been actively developed for several years.