Please note that the following two statements mean the same thing:
display(&num[0], 10);
display(num, 10); 8. When we say a[i], the C++ compiler internally converts it to *(a +i). The same thing happens
with 2D arrays.
9. In memory, whether it is a 1D array or a 2D array, the elements are stored in one continuous
chain.
10. Just as num[i] is the same as *(num + i), similarly, *(num[2] +1) is the same as *(*(num +2)
+1).
11. So a[i], *(a +i), *(i + a), and i[a] all refer to the same element—the ith element from the base
address.
12. The expression *(a + i) = a[i] + i[a] is nothing but a[i] = a[i] + a[i];