See memory addresses

Hello. I am teaching a course in a professional way in which the program talks about memories. How can I use the Arduino for students verify the positions occupied in memory when loading a program? Thank you.

use addresses of var's and functions - ?

uint32_t start;
uint32_t stop;

void setup() 
{
  Serial.begin(115200);
  Serial.println("Start ");
  printAddresses();
}

void loop() 
{
}

void printAddresses()
{
  Serial.println((long)&start);          // address of var start  (RAM)
  Serial.println((long)&stop);            // address of var stop  (RAM)

  Serial.println((long) setup);           // start address of setup()  (PROGMEM)
  Serial.println((long) loop);            // start address of setup()  (PROGMEM)
  Serial.println((long) printAddresses);  // start address of setup()  (PROGMEM)
}