fork download
  1. #include<stdio.h>
  2.  
  3. int a[][3] ={{10,20,30},
  4. {40,50,60},
  5. {70,80,90}};
  6.  
  7. int main(void)
  8. {
  9. int*p[] ={a[0],a[1],a[2]};
  10. int(*q)[3] =a;
  11.  
  12. printf("sizeof(int) =%zu\n", sizeof(int)); //4
  13. printf("sizeof(int*)= %zu\n", sizeof(int *)); //8
  14. printf("sizeof(int(*)[3]) = %zu\n", sizeof(int(*)[3])); //8
  15. printf("sizeof a =%zu\n", sizeof a);
  16. printf("sizeof p =%zu\n", sizeof p);
  17. printf("sizeof q =%zu\n", sizeof q);
  18.  
  19. printf("**a = %d\n", **a);
  20. printf("a[1][1]= %d\n",a[1][1]);
  21. printf("*a[1] =%d\n", *a[1]);
  22. printf("(*a + 1)[1] =%d\n",(*a+1)[1]);
  23. printf("*(a + 1)[1] =%d\n", *(a+1)[1]);
  24.  
  25. printf("**p = %d\n", **p);
  26. printf("p[1][1]= %d\n",p[1][1]);
  27. printf("*p[1] =%d\n", *p[1]);
  28. printf("(*p + 1)[1] =%d\n",(*p+1)[1]);
  29. printf("*(p + 1)[1] =%d\n", *(p+1)[1]);
  30.  
  31. printf("**q = %d\n", **q);
  32. printf("q[1][1]= %d\n",q[1][1]);
  33. printf("*q[1] =%d\n", *q[1]);
  34. printf("(*q + 1)[1] =%d\n",(*q+1)[1]);
  35. printf("*(q + 1)[1] =%d\n", *(q+1)[1]);
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
sizeof(int) =4
sizeof(int*)= 8
sizeof(int(*)[3]) = 8
sizeof a =36
sizeof p =24
sizeof q =8
**a = 10
a[1][1]= 50
*a[1] =40
(*a + 1)[1] =30
*(a + 1)[1] =70
**p = 10
p[1][1]= 50
*p[1] =40
(*p + 1)[1] =30
*(p + 1)[1] =70
**q = 10
q[1][1]= 50
*q[1] =40
(*q + 1)[1] =30
*(q + 1)[1] =70