If I write apps in C# will IPhone and Ipad users be able to use them.
I am a college student looking at taking either C# or java. I am going to write apps for both, I would like to find a language that is cross compatible.
Android native language is Java, so all android apps are written in java.
Actually, C# is perhaps the most cross-mobile option thanks to the guys over at Ximian who created M0n0Touch and M0n0Droid. Unlike the various phone gap like things, they actually compile down to native code (objective-c or davlik) and while also reflecting the native UI and device APIs. So you are actually creating 1st class iOS or Droid apps, just not in objective-c or java. It also means that the UI/device specific bits of your apps will not be directly reusable.
Now, your server-side C# app where most of the magic happens anyway don't care what the client is so long as it can consume your web services.
All that said, as a student there isn't any reason you should not be learning all three stacks.
I have not looked at MonoDroid/Touch yet, but I am very scepticle about these things. I have seen one in the past that does this, and the code it generates is very messy and of very poor quality. I would not use anything but their native languages. Or not just yet anyway.
But hoping it will change in the future
I feel ya -- most of these toolkits are really bad or really limited. But that family is quite different. Its brought to you from the guy who built gnome and mono and moonlight so they have the resume to make it happen. And the approach they take where they do not wrap the native APIs in a common UI-builder is refreshing. It is not your typical phonegap style solution.