Because the arduino is C++ you can use pretty much all of the core C language although some of the more verbose library functions (such as the printf family) are not supported.
Redirecting has more technical details on the build process
The Arduino documentation does not go into a lot of the gory details because its audience includes non programmers, but you can find more if you need it with some google serchaes.