Since the name of an array is a synonym for the location of the initial element, the assignment pa=&a[0] can also be written as pa = a;
Given that knowledge, in the below example, we declare and initialize a pointer lineptr which points to the address of the first element of the char array. But why in the readlines function, the parameter list has this "char *lineptr[]". If *lineptr points to the first address of the array and lineptr[] also points to the first address of the array, why do we need to use both of them here? Why can't the argument list just contain *lineptr without the []?