A display doesn't exist until X is running. So if you are in the command line BEFORE you enter startx, there is no display for xclock to connect to. Once X is running, xclock would be able to connect to it. I believe that on the console, entering startx will always start 0.0 by default. VNC always starts at 1.0.