From documentarion:
/dev/tty Current TTY device /dev/console System console /dev/tty0 Current virtual console In the good old days /dev/console was System Administrator console. And ttys were users serial devices attached to Server. /dev/console and /dev/tty0 represent current display and usualy are the same. You can ovverride it by adding, for example console=ttyS0 to grub.conf. After that your /dev/tty0 is a monitor and /dev/console is /dev/ttyS0.
Difference between /dev/tty an /dev/tty0 shows an exercise:
Switch to 2-nd console by pressing Ctrl+Alt+F2. Login as a root. Type the folowing: sleep 5; echo tty0 > /dev/tty0. press Enter and quick switch to 3d console by pressing Alt+F3. Now switch back to 2-nd by pressing Alt+F2. Type sleep 5; echo tty > /dev/tty, press Enter and quick switch to 3d console.
You can see that tty is the console where process starts, and tty0 is a always current console.