Если необходимо вывести адрес, следует использовать спецификатор %p. Данный спецификатор формата приводит к тому, что компьютер отображает адрес в формате, совместимым с типом адресации, используемой на компьютере. Следующая программа выводит адрес целой переменной sample:
#include <stdio.h>
int sample;
int main(void);
{
printf(“%p”, &sample);
{
Спецификатор %n
Спецификатор формата %n отличается от других спецификаторов. Вместо того, чтобы говорить printf() о необходимости вывода чего-нибудь, он заставляет printf() инициализировать переменную, на которую указывает аргумент, соответствующий данному спецификатору, значением, равным числу уже введенных символов. Другими словами, значение, соответствующее спецификатору формата %n, должно быть указателем на переменную. После того, как printf() завершит работу, переменная будет содержать число введенных символов до момента, когда был встречен. Следующая программа иллюстрирует применение спецификатора %n:
#include <stdio.h>;
int main(void)
{
int count;
printf(“this%n is a test\n”, &count);
printf(“%d”, count)
}
Программа выводит в первой строке this is a test, а во второй строке число 4. Спецификатор %n используется, как правило, для выполнения динамического форматирования.