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.