Internal tables are temporary tables that are stored in RAM of the application server. these tables are created as soon as the program is executed, and is discarded when the program ends. Every internal tables have a structure associated to it. The structure of the internal table consists of an header line and a body associated to it.
If an internal table consists of an header line, then this header line acts like a work area for the internal table implicitly. Remember, that the name of the header line and the name of the work area is same. A work area is an area which acts like an interface between an internal table and body.
Related: PFCG Roles and Authorization Concept
If in case the internal table does not consists of header line, then a user have to explicitly define a work area for the internal table. In this case you can create a work area either with the same as of the internal table or create with some other name.
NOTE: Whenever you work with internal table, try to involve those internal table which does not have a header line. For internal table having an header line, it is difficult to make out when a user is working with header line (implicit work area) or when the user is working with the body, since the name of the internal table and the header line (implicit work area) is same.