:: C Language Interview Questions ::

Click on >> (Arrow for More Questions) 

  Answer/Explaination : 

111
222
333
344


(Exp):
Let us consider the array and the two pointers with some address




After execution of the instruction ptr++ value in ptr becomes 1002, if 
scaling factor for integer is 2 bytes. Now ptr – p is value in ptr – starting 
location of array p, (1002 – 1000) / (scaling factor) = 1, *ptr – a = value at 
address pointed by ptr – starting value of array a, 1002 has a value 102 so 
the value is (102 – 100)/(scaling factor) = 1, **ptr is the value stored in 
the location pointed by the pointer of ptr = value pointed by value pointed 
by 1002 = value pointed by 102 = 1. Hence the output of the firs printf is 
1, 1, 1.
After execution of *ptr++ increments value of the value in ptr by scaling 
factor, so it becomes1004. Hence, the outputs for the second printf are ptr 
– p = 2, *ptr – a = 2, **ptr = 2. 
After execution of *++ptr increments value of the value in ptr by scaling 
factor, so it becomes1004. Hence, the outputs for the third printf are ptr – p 
= 3, *ptr – a = 3, **ptr = 3. 
After execution of ++*ptr value in ptr remains the same, the value pointed 
by the value is incremented by the scaling factor. So the value in array p at 
location 1006 changes from 106 10 108,. Hence, the outputs for the fourth 
printf are ptr – p = 1006 – 1000 = 3, *ptr – a = 108 – 100 = 4, **ptr = 4. 
 
 
 

Next >>

 
 

Quick Links

| Home | C Language | All India Entrances | Previous Year Papers | Software Projects

| Project Reports | Job Alerts & Notifications | Technical Interview Questions |

| Audio Visual Notes |