O -- é usado para dizer ao programa que o que quer que se segue deve não ser interpretado como uma linha de comando opção para printf .
Edit: Assim, o printf "--" que você tentou basicamente acabou sendo "printf sem argumentos" e, portanto, falhou.