#include #define SIZE 4 void foo(int A[][SIZE]) { printf("A[0] = %u\n", A[0]); printf("A[1] = %u\n", A[1]); printf("A = %u\n", A); printf("A+1 = %u\n", A+1); printf("*A = %u\n", *A); printf("*(A+1) = %u\n", *(A+1)); printf("(*A)+1 = %u\n", (*A)+1); printf("**A = %d\n", **A); printf("**(A+1) = %d\n", **(A+1)); printf("Pointer to A[0][1] = %u\n", A[0]+1); printf("Pointer to A[0][1] = %u\n", (*A)+1); printf("*(A[0]) = %d\n", *(A[0])); printf("(*A)[0] = %d\n", (*A)[0]); } int main() { int A[SIZE][SIZE]; for (int i = 0; i < SIZE; i++) for (int j = 0; j < SIZE; j++) A[i][j] = i * (SIZE+1) + j; printf("A = %u\n", A); for (int i = 0; i < SIZE; i++) printf("A[%d] = %u\n", i, A[i]); for (int i = 0; i < SIZE; i++) for (int j = 0; j < SIZE; j++) printf("Address of A[%d][%d] = %u\n", i, j, &A[i][j]); foo(A); }