GATE CSE
First time here? Checkout the FAQ!
x
0 votes
307 views
#include <stdio.h>
int main()
{
int a[][3] = {1, 2, 3, 4, 5, 6};
int (*ptr)[3] = a;
printf("%d %d ", (*ptr)[1], (*ptr)[2]);
++ptr;
printf("%d %d\n", (*ptr)[1], (*ptr)[2]);
return 0;
}


(a) 2 3 5 6 (b) 2 3 4 5
(c) 4 5 0 0 (d) none of the above

asked in Programming by (33 points)   | 307 views
ans  A?
Explanation?

int (*ptr)[3]  // ptr is a poinetr it stores 3 integer values.

int (*ptr)[3]=a; // it stores address of a.

(*ptr)[1] array of first element and (*ptr[2]) array of 2nd element.those are 2,3

(++ptr) it is  increased .it access 2nd dimensional array 

again (*ptr[1]) and (*ptr[2]) elements are 5,6

http://stackoverflow.com/questions/13910749/difference-between-ptr10-and-ptr10

int a[][3] = {1, 2, 3, 4, 5, 6};
int (*ptr)[3] = a;

Can u explain the structure for this 2 lines

2)ptr is a pointer to an array of storing 3 integer values.

ptr contains address of a.suppose address of a=1000 then 

 

 

it is giving result as 2,3,5,6 @vishal
@santhosh convert it as answer .  Perhaps Many of your comments should have to be converted to answers :)
Does the above structure for the 2D array is correct? . Because i was unable to visualise the 2D array structure with rows not mentioned.
two 2-d arrays a[0] and a[1]

in which a[0]---a[0][0] ,a[0][1],a[0[2] elements are 1,2,3

same as a[1]--a[1][0],a[1][1],a[1][2] elements are 4,5,6

1 Answer

+2 votes
Best answer
int *ptr[10];

This is an array of 10 int* pointers

int (*ptr)[10];

This is a pointer to an array of 10 int

  *(*a+1)   (*a)[1]  are two diffferent representation of a[0][1]

 

$int (*ptr)[3] $ // is nothing but  ptr[][]

$int (*ptr)[3]=a;$ // it stores address of a .

$(*ptr)[1]  $first element  // nothing but a[0][1]  which print 2
$(*ptr[2]) $ 2nd element. // // nothing but a[0][2] which print 3

$(++ptr)$ it is  increased .it access 2nd dimensional array 

$(*ptr)[1] $ first element  // nothing but a[1][1]  which print 5
$(*ptr[2])$  2nd element. // // nothing but a[1][2] which print 6

Output is $2,3,5,6$

http://stackoverflow.com/questions/13910749/difference-between-ptr10-and-ptr10

 

answered by Veteran (10.9k points)  
edited by


Top Users Jun 2017
  1. Bikram

    3704 Points

  2. Hemant Parihar

    1484 Points

  3. junaid ahmad

    1432 Points

  4. Arnab Bhadra

    1408 Points

  5. Niraj Singh 2

    1311 Points

  6. Rupendra Choudhary

    1194 Points

  7. rahul sharma 5

    1132 Points

  8. Debashish Deka

    994 Points

  9. srestha

    932 Points

  10. Arjun

    930 Points

Monthly Topper: Rs. 500 gift card
Top Users 2017 Jun 19 - 25
  1. Bikram

    1960 Points

  2. Niraj Singh 2

    1306 Points

  3. junaid ahmad

    502 Points

  4. sudsho

    410 Points

  5. akankshadewangan24

    388 Points


23,355 questions
30,066 answers
67,371 comments
28,382 users