The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+3 votes
2k 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[1]);
         return 0;
}

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

asked in Programming by Veteran (395k points)
edited by | 2k views

5 Answers

+5 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[1]=*(ip+1)).
answered by Active (1.2k points)
selected by
+3 votes

Hence Ans is 6.

answered by Boss (23.6k 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[0]=5$

Hence $ip[1]=6$
answered by Loyal (6.2k points)
0 votes
The program asks for what is the out put of printing ip[1] ,for that we need to understand what ip[1] represents here .it represents the second element of ip[ ] .What ip[ ] represents ? it represents arr[4] so what ip[1] will represent it will be arr[4+1] which is 6 .
answered by (275 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[1]);

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

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

answered by Loyal (5.9k points)
Answer:

Related questions

+5 votes
3 answers
5
asked Feb 7 in Compiler Design by Arjun Veteran (395k points) | 2.1k views
Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
50,071 questions
53,206 answers
184,562 comments
70,424 users