Let's remove some assumptions...
Code:
#include <stdio.h>
int main( void )
{
int n1 = 100;
int n2 = 150;
int *p = &n1;
printf("&n1 = %p, n1 = %d\n", (void*)&n1, n1);
printf("&n2 = %p, n2 = %d\n", (void*)&n2, n2);
printf("&p = %p, p = %p, *p = %d\n", (void*)&p, (void*)p, *p);
p++;
printf("&p = %p, p = %p, *p = %d\n", (void*)&p, (void*)p, *p);
return 0;
}
/* my output
&n1 = 0012FF88, n1 = 100
&n2 = 0012FF84, n2 = 150
&p = 0012FF80, p = 0012FF88, *p = 100
&p = 0012FF80, p = 0012FF8C, *p = 1245112
*/
Oops, the last attempt appears to make some assumptions it outght not. An improved version might be...
Code:
#include <stdio.h>
int main( void )
{
int n[] = {100, 150};
int *p = n;
printf("&n[0] = %p, n[0] = %d\n", (void*)&n[0], n[0]);
printf("&n[1] = %p, n[1] = %d\n", (void*)&n[0], n[0]);
printf("&p = %p, p = %p, *p = %d\n", (void*)&p, (void*)p, *p);
p++;
printf("&p = %p, p = %p, *p = %d\n", (void*)&p, (void*)p, *p);
return 0;
}
/* my output
&n[0] = 0012FF84, n[0] = 100
&n[1] = 0012FF84, n[1] = 100
&p = 0012FF80, p = 0012FF84, *p = 100
&p = 0012FF80, p = 0012FF88, *p = 150
*/