A simplicial complex C is a finite set of simplices that satisfies the following two conditions.
The term cell is sometimes used in a broader sense to denote a polytope, possibly unbounded, leading to the definition of cell complex, whose faces are cells.
If the maximal dimension of the consituting simplices is k then the complex is called k-complex. A k-complex is called homogeneous, if its only faces are the faces of its k-faces. An example of a non-homogeneous complex is a triangle with a line segment attached to one of its vertices.
A simplex by itself of dimension k is represented by labels called 0-simplices (its set of vertices), 1-simplices (its set of edges), and so on up to a single k-simplex. The general finite simplicial complex is a set of instructions for joining a number of simplices of varying dimensions together, as a topological space in the abstract (not assumed to be a subset of Euclidean space). The joins are restricted to be at vertices, or along an edge, or by joining two faces.
To make this formal we have to define precisely within the r-simplices the relation with the r-1-simplices of being a face. Identifications between two simplicial complexes are allowed only if they respect the face relations. That is, identifications in one dimension must match up in lower dimensions. Then the general concept may be defined inductively starting with the simplex case.
For the definition of homology groups of a simplicial complex, one can read the corresponding chain complex directly - provided consistent orientations are made of all simplices.
See also the discussion at polytope of simplicial complexes as subspaces of Euclidean space, made up of subsets each of which is a simplex. That somewhat more concrete concept is there attributed to Alexandrov. Any finite simplicial complex in the sense talked about here can be embedded as a polytope in that sense, in some large number of dimensions.