# "Concept" inventory for Labs 1--5
## Lab 1
* while / for
* conditionals and boolean expressions
* functions/procedures
* **functions**: printf, sqrt, floor
* main function
* strings and arrays
* **types**: int, bool, float, char *, char **
* **includes**: `stdio.h`, `math.h`, `stdbool.h`
* order of functions in file
* recursion (not tail recursion)
* finite precision of integers
## Lab 2
* own library in separate file
* header files
* prototype declarations
* linking
* warnings
* macros multiple inclusion problem
* do/while
* **functions**: strcmp, scanf, getchar, putchar, random (plus initialising with seed etc.)
* EOF constant
* **includes**: `string.h`
* **types**: char []
## Lab 3
* tail recursion
* function pointers
* typedefs
* unions
* **functions:** atof, atoi, strdup
## Lab 4
* Pointers
* Pointer arithmetic
* Pass by value vs. pass by reference
* Pointers to stack variables both on previous frames (legal) and invalidated frames (illegal)
* structs
* arrays of structs
## Lab 5
* **includes**: `stdio.h`
* **functions**: fopen, fclose, fprintf, fgetc, fputc