#include long *p; void a(void); void b(void); void c(void); int main(void) { long m = 10; p = &m; printf("&m = %u\n", (unsigned long)p); a(); return 0; } void a(void) { long a = 20; printf("&a = %u\n",(unsigned long) &a); b(); } void b(void) { long b = 30; printf("&b = %u\n",(unsigned long) &b); c(); } void c(void) { long c = 40; printf("&c = %u\n\n", (unsigned long)&c); printf("m = %ld\n", *(long*)(p)); printf("a = %ld\n", *(long*)(p - 12)); printf("b = %ld\n", *(long*)(p - 24)); printf("c = %ld\n", *(long*)(p - 36));