My Notes
- when passing a multi-D array as parameter in function, the very first size of array can be unspecified while all the others must be specified.
- if pointer ptr + 5, the location vary depending onb which CPU being used(16-bit, 32-bit, 64-bit).
- a multi-D array like int x[3][4][2] contains 24 elements which locations range from 0 to 23. suppose ptr = x is a pointer, then &x[i][j][k] = pre + i*4*2 +j*2+k because i will be 0, 1, 2; j will be 0, 1, 2, 3; and k will be 0,1.
- an array name without any indexing brackets is pointer to the beginning of an array, so y[i] = *(y+i).
- pointer arithmetic runs from left to right.