S
1000 |
2000 |
3000 |
4000 |
ice |
green |
cone |
please |
ptr
100 |
101 |
102 |
103 |
4000 |
3000 |
2000 |
1000 |
p
10 |
20 |
30 |
40 |
100 |
101 |
102 |
103 |
1.$**++p=*\left ( *\left (p+1 \right ) \right )=*\left ( *\left ( 20 \right ) \right )=*\left ( 101 \right )=3000$=value at 3000 is "cone"
2.$*--*++p+3=*\left ( --\left ( *\left ( ++p \right ) \right ) \right )+3$
$=*\left (--\left ( * \left ( 30\right )\right ) \right )+3$
$=*\left ( --\left(102\right ) \right )+3$ //from now 102 pointing to 3000
$=*\left ( 101 \right )+3=3000+3=3003=$will print "e"
3.$*p\left [ -2 \right ]+3=*\left ( *\left ( p-2 \right ) \right )+3=*\left ( *\left ( 10 \right ) \right )+3=*\left ( 100 ) \right )+3=4003$=will print value at address 1000="ase"
Now pic is
S
1000 |
2000 |
3000 |
4000 |
ice |
green |
cone |
please |
ptr
100 |
101 |
102 |
103 |
4000 |
3000 |
3000 |
1000 |
p
10 |
20 |
30 |
40 |
100 |
101 |
102 |
103 |
means here p pointing to value at address 30 and address 102 pointing to 3000 too
4.$p\left [ -1 \right ]\left [ -1 \right ]+1$
Now p is pointing to "cone"
$p\left [ -1 \right ]\left [ -1 \right ]$ will print 1 row back of it.i.e. "green"
$=*\left ( 2000 \right )+1=2000+1=2001$=it will print "reen"