Вы передаете массив символов (или указатель) в качестве первого аргумента (который включает в себя заполнители формата ) и дополнительные аргументы для замены в строке.
Вывод для вашего примерабудет 2
1 к стандартному выводу.%d
является заполнителем для десятичного целого числа со знаком.Дополнительное место будет взято буквально, поскольку оно не является допустимым заполнителем.a
передается в качестве первого аргумента-заполнителя и ему присваивается 2
.Дополнительные аргументы не будут рассматриваться (см. Ниже).
printf()
- это переменная функция , которая знает количество дополнительных аргументов только путем подсчета заполнителей в первом аргументе.
1 Уценка не допускает конечные пробелы в примерах встроенного кода.Мне пришлось использовать альтернативный пробел, но пробел, который вы увидите, будет нормальным (ASCII 0x20).