Would like to better understand memory when it comes to programming. Variables can be assigned values within the program, however the use of pointers makes reference to a memory block instead of the actual variable? Are there different types of memory to consider when programming? What does "stack" mean? Any feedback would be appreciated.