289 views
1 votes
1 votes
#include<stdio.h>
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;
}

explain this program?

1 Answer

Best answer
4 votes
4 votes

${\color{Red} {int (*ptr)[3]} } \rightarrow$ This is a pointer to an array of $3 \ integers$

${\color{Blue} {int (*ptr)[3] = a}} \rightarrow$    it stores address of $a$ .

${\color{Blue} {(*ptr)[1] }} \rightarrow$   it is $a[0][1]$ which is $2$

${\color{Blue} {(*ptr)[2] }} \rightarrow$    it is $a[0][2]$ which is $3$

${\color{Blue} {(++ptr) }} \rightarrow$it is  increased .it accesses  to $2^{nd}$ row of the  array 

${\color{Blue} {(*ptr)[1] }} \rightarrow$   it is $a[1][1]$ which is $5$

${\color{Blue} {(*ptr)[2] }} \rightarrow$    it is $a[1][2]$ which is $6$

selected by

Related questions

0 votes
0 votes
1 answer
1
Debargha Mitra Roy asked 6 days ago
67 views
#include <stdio.h int main() { int a[3] = {1, 3, 5, 7, 9, 11}; int *ptr = a[0]; ptr += sizeof(int); printf("%d", *ptr); return 0; }(Assume size of int to be $2$ bytes.)T...
0 votes
0 votes
2 answers
3
Debargha Mitra Roy asked Apr 10
113 views
What is the output of the below code?#include <stdio.h void main() { static int var = 5; printf("%d ", var ); if (var) main(); }a. 1 2 3 4 5b. 1c. 5 4 3 2 1d. Error
1 votes
1 votes
1 answer
4
SSR17 asked Feb 29
254 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how