This is an old question, but for folks who find there way here via google:
Setting up a chardev by itself isn't particularly useful, but if you associate it with a serial device...
-chardev pty,id=char0 -serial chardev=char0
...then you have set up a virtual serial port that connects a serial device in your virtual machine to the corresponding pty device on the host.
For example, if I boot a Linux virtual machine like this:
qemu-system-x86_64 -enable-kvm -smp 1 -m 1024 \
  -drive if=virtio,format=qcow2,file=fedora.cow \
  -netdev user,id=net0 \
  -device virtio-net-pci,netdev=net0 \
  -serial mon:stdio \
  -chardev pty,id=char0 \
  -serial chardev:char0
Then inside the virtual machine, /dev/ttyS0 is the serial console, and /dev/ttyS1 is connected to the PTY device created by the -chardev pty option. Assuming that when booting the virtual machine I see:
char device redirected to /dev/pts/9 (label char0)
Then on the host I can connect a serial communication program to /dev/pts/9:
$ picocom /dev/pts/9
And inside the virtual machine, if I run:
echo hello world > /dev/ttyS1
I will in the output from picocom:
hello world
If I start up a shell on /dev/ttyS1 inside the virtual machine:
bash < /dev/ttyS1 > /dev/ttyS1 2> /dev/ttyS1
Then I can interact with that shell over /dev/pts/9 on the host.