IP 07 Pointer
IP 07 Pointer
(*p
(*p).numerator = 1;
p->denominator = 2;
44 45 46 47
p 72 0 0 0
44 45 46 47 p+1 p+2
p 72 0 0 0
a[2] = 5;
*(a + 2) = 5;
*(p + 2) = 5;
p[2] = 5;
44 45 46 47 72 73 74 75 76 77 78 79 80 81 82 83
p 72 0 0 0 ? ? ? ? ? ? ? ? ? ? ? ?
p+1
numerator denominator numerator denominator
33 34 35 36 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
q 55 0 0 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
q+1
*x = *z + y;
printf(“%d”,
printf (“%d”, y);
}
a) Fix error of the code.
b) After fixing, what is displayed on screen?
void swap2(int
swap2(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
p1 = m;
p2 = &m[6];
printf(“%
printf (“%lld
lld”,
”, p2 – p1);
}
int main()
{
int x = 1023;
char *p = (char *)&x;
printf(“%d
printf (“%d %d %d %d
%d\\n”, p[0], p[1], p[2], p[3]);
}