fork(1) download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int ar[3][4] = {{2, 4, 6, 8},
  5. {1, 3, 5, 7},
  6. {10, 11, 12, 13}};
  7.  
  8. printf("========== Address and value ==========\n");
  9. for (int i = 0; i < 3; ++i) {
  10. for (int j = 0; j < 4; ++j) {
  11. printf("&ar[%d][%d] = %p, ar[%d][%d] = %d\n", i, j, &ar[i][j], i, j, ar[i][j]);
  12. }
  13. printf("\n");
  14. }
  15.  
  16. printf("========== Q1 ==========\n");
  17. printf("ar = %p\n", ar);
  18. printf("It's a 2D array pointer.\n\n");
  19.  
  20. printf("========== Q2 ==========\n");
  21. printf("ar + 2 = %p\n", ar + 2);
  22. printf("It's a 2D array pointer.\n\n");
  23.  
  24. printf("========== Q3 ==========\n");
  25. printf("*(ar + 2) = %p\n", *(ar + 2));
  26. printf("It's a 1D array pointer.\n\n");
  27.  
  28. printf("========== Q4 ==========\n");
  29. printf("*(ar + 2) + 3 = %p\n", *(ar + 2) + 3);
  30. printf("It's a 1D array pointer.\n\n");
  31.  
  32. printf("========== Q5 ==========\n");
  33. printf("*(*(ar + 2) + 3) = %d\n", *(*(ar + 2) + 3));
  34. printf("It's a integer value.\n\n");
  35.  
  36. return 0;
  37. }
Success #stdin #stdout 0s 4296KB
stdin
Standard input is empty
stdout
========== Address and value ==========
&ar[0][0] = 0x7ffd8087e470, ar[0][0] = 2
&ar[0][1] = 0x7ffd8087e474, ar[0][1] = 4
&ar[0][2] = 0x7ffd8087e478, ar[0][2] = 6
&ar[0][3] = 0x7ffd8087e47c, ar[0][3] = 8

&ar[1][0] = 0x7ffd8087e480, ar[1][0] = 1
&ar[1][1] = 0x7ffd8087e484, ar[1][1] = 3
&ar[1][2] = 0x7ffd8087e488, ar[1][2] = 5
&ar[1][3] = 0x7ffd8087e48c, ar[1][3] = 7

&ar[2][0] = 0x7ffd8087e490, ar[2][0] = 10
&ar[2][1] = 0x7ffd8087e494, ar[2][1] = 11
&ar[2][2] = 0x7ffd8087e498, ar[2][2] = 12
&ar[2][3] = 0x7ffd8087e49c, ar[2][3] = 13

========== Q1 ==========
ar = 0x7ffd8087e470
It's a 2D array pointer.

========== Q2 ==========
ar + 2 = 0x7ffd8087e490
It's a 2D array pointer.

========== Q3 ==========
*(ar + 2) = 0x7ffd8087e490
It's a 1D array pointer.

========== Q4 ==========
*(ar + 2) + 3 = 0x7ffd8087e49c
It's a 1D array pointer.

========== Q5 ==========
*(*(ar + 2) + 3) = 13
It's a integer value.