For  GAP, a  character  table is any  record  that  has the components
centralizers and identifier (see IsCharTable).
There are three different but very similar types of character tables in GAP, namely ordinary tables, Brauer tables and generic tables. Generic tables are described in Chapter Generic Character Tables. Brauer tables are defined and stored relative to ordinary tables, so they will be described in Brauer Table Records, and we start with ordinary tables.
You may store arbitrary information on an ordinary character table, but these are the only fields used by GAP functions:
centralizers:
identifier:
order:centralizers[1]
classes:
orders:
powermap:
fusions:name (the identifier
             component of the destination table) and map (a list of
More              about Maps and Parametrized Maps));
             if there are different fusions with same destination table,
             the field specification is used to distinguish them;
             optional fields are type (a string that is "normal"
             for normal subgroup fusions and "factor" for factor
             fusions) and text (a string with information about the
             fusion)
fusionsource:
irreducibles:
irredinfo:irreducibles,
               usual entries are indicator, pblock and charparam
Generic Character                Tables); if the field irreducibles is sorted using
               SortCharactersCharTable, the irredinfo field is
               sorted, too.  So any information about irreducibles
               should be stored here.
projectives:name (of the table of a
                 covering group) and chars (a list of --in general not
                 all-- faithful irreducibles of the covering group)
permutation:
classparam:
classtext:
text:1.o.r. for the test of
          orthogonality, pow[p] for the construction of the p-th
          powermap, DEC for the decomposition of ordinary characters in
          Brauer characters),
          and choices made without loss of generality where possible
automorphisms:irreducibles
                   (see MatAutomorphisms, TableAutomorphisms)
classnames:
classnames, a field
                tbl.clname that has the position of clname in
                classnames as value (see ClassNamesCharTable)
operations:Print (see DisplayCharTable) and
                ScalarProduct (see ScalarProduct); the default value
                of the operations field is CharTableOps
                (see Operations Records for Character Tables)
CAS:permchars, permclasses
         (both permutations), name and eventually text and
         classtext; application of the two permutations to
         irreducibles and classes yields the original CAS library
         table with name name and text text (see CAS Tables)
libinfo:othernames and perhaps CASnames
             which are all admissible names of the table (see
             CharTable);
             using these records, the list LIBLIST.ORDINARY can be
             constructed from the library using MakeLIBLIST
             (see Organization of the Table Libraries)
group:CharTable (see CharTable) then this component holds
           the group, with conjugacy classes sorted compatible with the
           columns of the table
Note that tables in library files may have different format (see chapter Character Table Libraries).
This is a typical example of a character table, first the ``naked'' record, then the displayed version:
    gap> t:= CharTable( "2.A5" );; PrintCharTable( t );
    rec( text := "origin: ATLAS of finite groups, tests: 1.o.r., pow[2,3,5\
    ]", centralizers := [ 120, 120, 4, 6, 6, 10, 10, 10, 10
     ], powermap := [ , [ 1, 1, 2, 4, 4, 8, 8, 6, 6 ],
      [ 1, 2, 3, 1, 2, 8, 9, 6, 7 ],, [ 1, 2, 3, 4, 5, 1, 2, 1, 2 ]
     ], fusions := [ rec(
          name := "A5",
          map := [ 1, 1, 2, 3, 3, 4, 4, 5, 5 ] ), rec(
          name := "2.A5.2",
          map := [ 1, 2, 3, 4, 5, 6, 7, 6, 7 ] ), rec(
          name := "2.J2",
          map := [ 1, 2, 5, 8, 9, 16, 17, 18, 19 ],
          text := [ 'f', 'u', 's', 'i', 'o', 'n', ' ', 'o', 'f', ' ',
              'm', 'a', 'x', 'i', 'm', 'a', 'l', ' ', '2', '.', 'A', '5',
              ' ', 'd', 'e', 't', 'e', 'r', 'm', 'i', 'n', 'e', 'd', ' ',
              'b', 'y', ' ', 't', 'h', 'e', ' ', '3', 'B', ' ', 'e', 'l',
              'e', 'm', 'e', 'n', 't', 's' ] ) ], irreducibles :=
    [ [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
      [ 3, 3, -1, 0, 0, -E(5)-E(5)^4, -E(5)-E(5)^4, -E(5)^2-E(5)^3,
          -E(5)^2-E(5)^3 ],
      [ 3, 3, -1, 0, 0, -E(5)^2-E(5)^3, -E(5)^2-E(5)^3, -E(5)-E(5)^4,
          -E(5)-E(5)^4 ], [ 4, 4, 0, 1, 1, -1, -1, -1, -1 ],
      [ 5, 5, 1, -1, -1, 0, 0, 0, 0 ],
      [ 2, -2, 0, -1, 1, E(5)+E(5)^4, -E(5)-E(5)^4, E(5)^2+E(5)^3,
          -E(5)^2-E(5)^3 ],
      [ 2, -2, 0, -1, 1, E(5)^2+E(5)^3, -E(5)^2-E(5)^3, E(5)+E(5)^4,
          -E(5)-E(5)^4 ], [ 4, -4, 0, 1, -1, -1, 1, -1, 1 ],
      [ 6, -6, 0, 0, 0, 1, -1, 1, -1 ] ], automorphisms := Group( (6,8)
    (7,9) ), construction := function ( tbl )
        ConstructProj( tbl );
    end, irredinfo := [ rec(
          pblock := [ , 1, 1,, 1 ] ), rec(
          pblock := [ , 1, 2,, 1 ] ), rec(
          pblock := [ , 1, 3,, 1 ] ), rec(
          pblock := [ , 2, 1,, 1 ] ), rec(
          pblock := [ , 1, 1,, 2 ] ), rec(
          pblock := [ , 1, 4,, 3 ] ), rec(
          pblock := [ , 1, 4,, 3 ] ), rec(
          pblock := [ , 2, 4,, 3 ] ), rec(
          pblock := [ , 1, 5,, 3 ] )
     ], identifier := "2.A5", operations := CharTableOps, fusionsource :=
    [ "P2/G1/L1/V1/ext2", "P2/G1/L1/V1/ext3", "P2/G2/L1/V1/ext2",
      "P2/G2/L1/V1/ext3", "P2/G2/L1/V2/ext2" ], name := "2.A5", size :=
    120, order := 120, classes := [ 1, 1, 30, 20, 20, 12, 12, 12, 12
     ], orders := [ 1, 2, 4, 3, 6, 5, 10, 5, 10 ] )
bigskip
    gap> DisplayCharTable( t );
    2.A5
         2  3  3  2  1  1   1   1   1   1
         3  1  1  .  1  1   .   .   .   .
         5  1  1  .  .  .   1   1   1   1
           1a 2a 4a 3a 6a  5a 10a  5b 10b
        2P 1a 1a 2a 3a 3a  5b  5b  5a  5a
        3P 1a 2a 4a 1a 2a  5b 10b  5a 10a
        5P 1a 2a 4a 3a 6a  1a  2a  1a  2a
    X.1     1  1  1  1  1   1   1   1   1
    X.2     3  3 -1  .  .   A   A  *A  *A
    X.3     3  3 -1  .  .  *A  *A   A   A
    X.4     4  4  .  1  1  -1  -1  -1  -1
    X.5     5  5  1 -1 -1   .   .   .   .
    X.6     2 -2  . -1  1  -A   A -*A  *A
    X.7     2 -2  . -1  1 -*A  *A  -A   A
    X.8     4 -4  .  1 -1  -1   1  -1   1
    X.9     6 -6  .  .  .   1  -1   1  -1
    A = -E(5)-E(5)^4
      = (1-ER(5))/2 = -b5 
bigskip
GAP 3.4.4