Experience points, abbreviated exp., is how much experience a Pokémon has. When you make a foe's Pokémon faint, all of the Pokémon who didn't faint, and participated in the battle will split the Exp. Exp. can also be gained training on Wild Pokémon. You will not gain any Exp. when you catch a wild pokémon though.
The stronger the fainted pokémon, the more Exp. will be earned. The stronger a pokémon, the more Exp. it needs to level up.
If a Pokémon in your party holds an Exp. Share, it will gain Exp. even if it doesn't participate in a battle. A popular strategy, when you don't have an Exp. Share, is to put a weak, or low level pokémon at the front of your party, and then as soon as the battle begins, switch it out. The pokémon will gain Exp. even though it didn't attack. Since it was in battle for a turn, it counts as participating. It will have to spilt Exp. with the pokémon that did the real work though. This is not advised when the lower level Pokémon is much weaker than the opponent, as your Pokémon may faint, gaining no Exp.