What areas of the C Language are not supported?
Arduino isn't really a language, it is a combination of an interactive development environment (IDE) and a set of C and C++ libraries, all designed to simplify AVR programming. It is built on avrlib, which in turn uses the gcc compiler for the Atmel AVR architecture. As far as I know 100% of C and most of C++ is supported.
If you are used to programming C or C++ on a machine that has an operating system, the biggest difference you will see is the huge number of libraries you take for granted are not available on the Arduino, because there simply isn't room for them, and there isn't an operating system to lean on. Many people confuse the C language with common library functions; e.g., printf() is not part of the C language. ![]()
Sorry I can't recommend a C tutorial, but it's been so long since I learned it that any sources I could remember wouldn't be relavant.
-j