C uses row-major order for arrays and indexing starts from 0 and size of a char is 1 byte. So, before a[40][10], we have 40 rows of 40 bytes = 1600 bytes plus 10 chars of 1 byte each, which occupies memory locations 0-1599, 1600-1609. So, a[40][10] strats from address 1610.