+3 votes
2.3k views

Consider the following C program:

#include <stdio.h>
int main() {
int arr[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 5}, *ip=arr+4;
printf(“%d\n”, ip);
return 0;
}

The number that will be displayed on execution of the program is _______

edited | 2.3k views
0

arr is base address of element $1$.

arr+$4$ is base address of element $5$. Let it ip.

ip[$1$]=*(ip+$1$)= Base address of element $6$.

6 is the answer.

## 5 Answers

+6 votes
Best answer
$6$
ip is an integer pointer and the initial assignment sets it to the element at array index $4$ i.e. $5$.(holds address of ar index $4$)
The next statement refers to the next integer after it which is $6 (ip=*(ip+1))$.
by Active (1.1k points)
edited by
+4 votes Hence Ans is 6.

by Boss (23.5k points)
+2 votes
arr+0 points to the 1st element of the array(index 0) which is 1.

Hence arr+4 will point to the 5th element of the array(index 4) which is 5.

As per assignment $*ip=arr+4$ , $ip=5$

Hence $ip=6$
by Loyal (7k points)
0 votes
The program asks for what is the out put of printing ip ,for that we need to understand what ip represents here .it represents the second element of ip[ ] .What ip[ ] represents ? it represents arr so what ip will represent it will be arr[4+1] which is 6 .
by (255 points)
0 votes
int arr[]={1,2,3,4,5,6,7,8,9,0,1,2,5} , *ip = arr+4; printf("%d\n",ip);

ip is an integer pointer that is currently holding the address where 5 is stored.(i.e. a)

ip = *(ip+1) = value present at the next address i.e. 6. so it will print 6.

by Boss (17.2k points)
Answer:

+1 vote
3 answers
1
+2 votes
3 answers
2
+1 vote
1 answer
3
+7 votes
5 answers
4
+5 votes
5 answers
5
+6 votes
3 answers
6
+6 votes
3 answers
7