But let me hear if I got this right (I'm still new to all this programming)
C is same for Windows and Mac until I play with GUI.
With a slight adjustment this is right: The core of C is the same everywhere (Windows, Mac, Linux, embedded, etc..., etc..., etc...). The whole purpose of creating C was so that the phone company (Bell) could develop their software once, then compile it for any vendor's hardware/os combination.
However, most of programming does not use the core of C, but rather builds on libraries of code that others have created. These libraries can be very platform specific, especially ones that are created by OS vendors. Of these the GUI libraries are often the most platform dependent.
Now as others have mentioned, there are third-party GUI libraries that work very hard to make it easy to port back and forth. But they never quite feel native to any one OS (since they have to make compromises).
C++ is for Windows mostly/only
Here you have it wrong. C++ is a standard extension of C and is similarly used all over the place, including in MacOS X. Much of the lower levels of MacOS X is written in C++. However, the NeXT company was a big proponent of an alternate way of adding Object Orientation to C, and so helped flesh out Objective-C.
With the systems Apple has in place you can even mix C, Objective-C, and C++ calls into the same file using a '.mm' extension, although you are likely to drive yourself batty doing this too much (because of the weird mix of memory semantics). I should note that by listing 'C' in that list I am being redundant, since Objective-C is a strict superset of C, and C++ is very nearly one too (there is some exception that slips my mind at the moment).
Objective-C is for Mac mostly/only.
Technically there are Objective-C compilers that will compile on any target OS, but while Objective-C is a nice language the real draw to using it on MacOS X is the beautiful and extensive library that Apple provides: Cocoa. Without Cocoa and the underlying Foundation (and other) frameworks it would be a waste of time to use Objective-C (the same can be said about any language without libraries). And with two odd exceptions (
Cocotron and
GNUStep) none of these libraries are available anywhere else than on MacOS X.
So a better statement is that Objective-C is only used to any great degree where the Cocoa or CocoaTouch libraries are available: MacOS X and iPhone OS.