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