38 38 votes 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 _______ Programming in C gatecse-2019 numerical-answers programming-in-c programming array easy one-mark + – Arjun 23.6k views answer comment Share Follow Print See all 4 Comments 4 4 Comments reply Ashwani Kumar 2 commented Jun 3, 2019 reply Follow flag 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. 14 14 replyShare subbus commented Apr 27, 2020 reply Follow flag *p = arr + 4 = arr[4] *(p+0) = arr[4] *(p+1) = arr[4+1] = arr[5] 2 2 replyShare mahendrapatel commented Jan 23, 2023 reply Follow flag Easy 1 1 replyShare himanshud2611 commented Jan 28, 2024 reply Follow flag ip[1] is *(ip+1) i.e 6 0 0 replyShare Please log in or register to add a comment.
Best answer 54 54 votes $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))$. vin101 answered Feb 7, 2019 • edited Apr 28, 2019 by go_editor vin101 comment Share Follow See all 2 Comments 2 2 Comments reply neel19 commented Jun 13, 2020 reply Follow flag The dereferencing part made it clear. 0 0 replyShare Satoshi Nakamoto commented Oct 4, 2025 reply Follow flag I have taken size of one element as 2 (integer type) and that points to 8 and answer came as 9 but now i corrected thanks 2 2 replyShare Please log in or register to add a comment.
31 31 votes Hence Ans is 6. Rajesh Pradhan answered Feb 7, 2019 Rajesh Pradhan comment Share Follow 0 reply Please log in or register to add a comment.
14 14 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. Satbir answered Feb 12, 2019 Satbir comment Share Follow 0 reply Please log in or register to add a comment.
9 9 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$ Sayan Bose answered Feb 7, 2019 Sayan Bose comment Share Follow 0 reply Please log in or register to add a comment.
3 3 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 . _shashi answered Feb 7, 2019 _shashi comment Share Follow 0 reply Please log in or register to add a comment.
2 2 votes After executing the line---- *ip=arr+4 ip will point to the element 5. so ip[0]=5 ip[1]=6 ip[2]=7 ...... Answer-->6 Arnabh Gangwar answered Oct 3, 2019 Arnabh Gangwar comment Share Follow 0 reply Please log in or register to add a comment.