After executing "0th sentence" memory address of n1, n2 and *pn were ADDR:0061FF2C, 0061FF28, 0061FF24. Do they change after executing 1), 2) and 3)? I put printf for every code but they do not seem to change. theoretically, shouldn't they change because variables were assigned new values?
#include <stdio.h> 
int main(void) 
{
    int n1=3, * pn = &n1;
    int n2=0;
    printf("%p, %p, %p\n", &n1, &n2, &pn);  // 0)
    n2 = *pn;                           // 1)
    *pn = n2 + 1;                   // 2)
    n1 = *pn + *(&n2);                      // 3)
    printf("%d, %d, %d\n",n1,n2,*pn);           // 4)
    return 0;
}
 
     
     
    