fork download
  1. #include <stdio.h>
  2.  
  3. void printSizes(int a[3][3], int (*p)[3])
  4. {
  5. puts("when a and p passed to a function:");
  6. printf("sizeof a: %u\n", (unsigned)sizeof a);
  7. printf("sizeof p: %u\n", (unsigned)sizeof p);
  8. }
  9.  
  10. int main()
  11. {
  12. int a[3][3] = {{10,20,30},{40,50,60},{70,80,90}};
  13. int (*p)[3] = { a + 0, a + 1, a + 2 };
  14. printf("sizeof a: %u\n", (unsigned)sizeof a);
  15. printf("sizeof a[0]: %u\n", (unsigned)sizeof a[0]);
  16. printf("sizeof a[0][0]: %u\n", (unsigned)sizeof a[0][0]);
  17. printf("sizeof p: %u\n", (unsigned)sizeof p);
  18. printf("sizeof p[0]: %u\n", (unsigned)sizeof p[0]);
  19. printf("sizeof p[0][0]: %u\n", (unsigned)sizeof p[0][0]);
  20. printSizes(a, p);
  21. return 0;
  22. }
  23.  
Success #stdin #stdout 0s 9424KB
stdin
Standard input is empty
stdout
sizeof a: 36
sizeof a[0]: 12
sizeof a[0][0]: 4
sizeof p: 8
sizeof p[0]: 12
sizeof p[0][0]: 4
when a and p passed to a function:
sizeof a: 8
sizeof p: 8