I always believed that in C :

```
int a[5][3]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

```

refers to an array of arrays and in memory fifteen contiguous blocks are stored but `a[0]` is the pointer to `a[0][0]` and `a[1]` is the pointer to `a[1][0]` and so on. So I thought it to be similar to be an array of pointers. What is the difference between them?