Languages-C & C Plus Plus [3i Infotech Placement]: Sample Questions 50 - 50 of 354

Glide to success with Doorsteptutor material for competitive exams : get questions, notes, tests, video lectures and more- for all subjects of your exam.

Question 50

C & C Plus Plus
Edit

Describe in Detail

Essay▾
1. main ()
2. {
3.     staticinta[ ] ={ 0, 1, 2, 3, 4};
4.     int ⚹p[ ] ={ a, a +1, a +2, a +3, a +4};
5.     int ⚹⚹ ptr =p;
6.     ptr ++;
7.     printf ( %d %d %d, ptr-p, ⚹ptr-a, ⚹⚹ ptr);
8.     ptr ++;
9.     printf ( %d %d %d, ptr-p, ⚹ptr-a, ⚹⚹ ptr);
10.     ⚹+ +ptr;
11.     printf ( %d %d %d, ptr-p, ⚹ptr-a, ⚹⚹ ptr);
12.     ++ ⚹ptr;
13.     printf ( %d %d %d, ptr-p, ⚹ptr-a, ⚹⚹ ptr);
14. }

Explanation

111

222

333

344

In a program

 static int a [] = {0, 1,2, 3,4} ; Let us consider the array and the two pointers with some addressa01234Address is 100 102 104 106 108 int ⚹ p [] = {a, a + 1, a + 2, a + 3, a + 4} ; P100102104106108Address is 1000 1002 1004 1006 1008 int ⚹⚹ ptr = p; Ptr1000Address is 2000 ptr ++ ; After execution of the instruction ptr ++ value in ptr becomes 1002, if scaling factor for integer is 2 bytes. printf (% d % d % d, ptr-p, ⚹ ptr-a, ⚹⚹ ptr) ; 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 firsprintf is 1,1, 1. ⚹ ptr ++ ; After execution of ⚹ ptr ++ increments value of the value in ptr by scaling factor, so it becomes1004 printf (% d % d % d, ptr-p, ⚹ ptr-a, ⚹⚹ ptr) ; Hence, the outputs for the second printf are ptr - p = 2, ⚹ ptr - a = 2, ⚹⚹ ptr = 2. ⚹+ + ptr; After execution of ⚹+ + ptr increments value of the value in ptr by scaling factor, so it becomes1004. printf (% d % d % d, ptr-p, ⚹ ptr-a, ⚹⚹ ptr) ; Hence, the outputs for the third printf are ptr - p = 3, ⚹ ptr - a = 3, ⚹⚹ ptr = 3. ++ ⚹ ptr; After execution of ++ ⚹ ptr value in ptr remains the same,The value pointed by the value is incremented by the scalingfactor.So the value in array p at location 1006 changes from 106 to 108 printf (% d % d % d, ptr-p, ⚹ ptr-a, ⚹⚹ ptr) ; Hence, the outputs for the fourth printfare ptr - p = 1006 - 1000 = 3, ⚹ ptr - a = 108 - 100 = 4, ⚹⚹ ptr = 4.

Developed by: