C is a low level programming language. It’s basically the lowest high level programming language that I know of. Anything lower and you might as well be in assembly.
Some unusual behavior:
- c static keyword - basically means internal persistent, but who knows what static might mean in other languages
Some Features (unsure version, unless stated)
- auto-allocated memory is auto-deallocated when its scope comes to a close
- arrays are blocks of memory. index is multiplied by the size of the array item to find the location in the block of memory, that’s why C indexes start at 0
- malloc and free are the manual memory management functions provided in stdlib.h
Some notes on Pointers
- a * on the declaration line indicates a new pointer
- a * on any non-declaration line indicates the value being pointed to
- arrays are basically just pointers
- this is probably why it’s good to allocate that array memory, so something else doesn’t use it at the same time.
Resources
- The C Programming Language - by Kernighan & Ritchie
- C Programming for Everybody a course by Dr. Chuck