So i know that arduino is bassed on C/C++. But i don't know how much of the normal C/C++ functions and libraries can be used. I know that there is a very limited memory on arduinos, but that would just make C/C++ more fun ( :
Just give some examples of libraries i can use, ect...
Clearly i know nothing, so should only be corrected on mistakes i made in my question, and not answered ):
Arduino sketches are compiled as C++ with GNU extensions, using a standard GCC compiler.
There is no “Arduino language”, and C/C++ is not a language either, although a GCC C compiler is included, it is not used for sketches and most libraries.
For most Arduino-compatible boards, you have full access to the C++ standard library. On ESP32-based boards, you can even use std::thread and so on.
One notable exception is the 8-bit AVR platform (e.g. Arduino Uno, Mega, original Nano): for these boards, the C++ standard library is not included out of the box, though you can install third-party ports as a library.
Most newer boards such as the Arduino Zero, Nano 33, MKR are based on 32-bit ARM chips, and these support the standard library out of the box.
Things like std::cout and file IO might not work correctly, for obvious reasons, although you can often redirect cout to one of the serial ports if you really want to.
The Arduino IDE preprocesses your sketch in two important ways before compiling:
It adds #include <Arduino.h> at the top, and
it creates function prototypes.
All .ino files are concatenated and then compiled as a standard .cpp file using the g++ cross-compiler from the toolchain that is installed when you install a “Core” from the Arduino IDE boards manager.
If you're interested, you can see (or change) which options are passed to the compiler in the platform.txt configuration file. For example, for AVR boards:
Um. There's a LOT of C++ stuff that isn't available. Exceptions, STL, many of the features that are actually supplied by an OS, etc. The core LANGUAGE is there.
C-wise, an AVR can use anything in Avr-libc, and most of the ARM cores use Newlib Nano