If you're starting the engine and it has already started but you keep pressing the key and the starter keeps working while the engine is running. What can this cause?? Could it harm anything?
This is called "run on" of the starter. It doesn't cause a huge issue if it doesn't happen too much or for too long, but basically the Bendix stays engaged in the flywheel ring gear an is being then driven by the engine.
To further explain, the Bendix (or pinion drive mechanism) is the part on the end of the starter armature which engages the flywheel (or flexplate) ring gear when you engage the starter. The Bendix has a built in one way clutch as part of it. When it is engaging the ring gear prior to the engine starting, the clutch is solid and allows the gear to rotate the engine. When the engine starts up, it will now be spinning faster than the starter is, so the clutch in the Bendix allows the gear to turn freely so as to not increase the speed of the starter armature. It is designed this way to prevent damage to the starter motor itself in just the situation you are talking about. If the starter were to get over driven, it would cause excess wear very quickly.
If the Bendix gets over driven for a long period of time, you will cause the one-way clutch to spin freely, but it also causes heat from friction as the one-way clutch always has a clamping force on the internals of the Bendix. As stated, it is designed to take this for short periods of time, so no worry there. For your convenience, here is a blown apart picture of a generic starter. The starter in your vehicle probably doesn't look exactly like this, but all the parts will pretty much be there in one shape or another.