A heme is a metal-containing cofactor that consists of an iron atom contained in the center of a large heterocyclic organic ring called a porphyrin. And although porphyrins do not necessarily contain an iron, a substantial fraction of porphyrin containing metalloproteins do in fact have heme as their prosthetic subunit.
There are three biologically important kinds of heme. The most common type of heme is called heme b. Hemoglobin and myoglobin are examples of proteins that contain heme b. Heme b is not covalently bound to the apoprotein it is found in. The structure of heme b is given here:
Heme a differs from heme b in that a methyl side chain is oxidized into a formyl group, and one of the vinyl side chains has been replaced by an isoprenoid chain. Like heme b, heme a is not covalently bound to the apoprotein it is found in. An example of a heme containing protein that has heme a is cytochrome c oxidase. Heme c differs from heme b in that the two vinyl side chains are covalently bound to the protein itself. Examples of proteins that contain a c type heme are cytochrome c and the bc1 complex.
The names of cytochromes tend to (but not always) reflect the kinds of hemes they contain. Therefore, cytochrome a contains a a type heme, cytochrome c contains a c type heme, etc.