You can, but in the case of only one variable it doesn't make much sense to change the order, does it? This only serves to change the order of arguments.
To clarify this:
printf("%s %s %s", "one", "two", "three");
-> Output "one two three" (original order)
printf("%3$s %1$s %2$s", "one", "two", "three");
-> Output "three one two" (changed order i.e. use the third argument at the first placeholder, the first at the second placeholder and the second argument at the third)