The code is regular C/C++, with the exception that Aurduino.h is automatically included, and certain forward declarations are automatically generated. The include pulls in type.h and some other standard C include files. It also predefines a number of constants specific to the arduino environment, which you need to know about if you want to understand what a sketch is doing.
Perhaps the other main difference is that a main() function is provided by the environment, and it performs certain hardware initialisations and then calls setup() and then calls loop() repeatedly. That is: setup() and loop() are the entry points into the sketch, rather than main().
You need to know the API, but the language is C++ compiled with the gcc compiler.