2015-06-10 2 views

ответ

3

Вы сказали printf() как печати что-то (формат спецификатора %d), но вы не сказали printf(), что для печати.

Чтобы разработать, вы забыли указать требуемый аргумент для спецификатора формата поставки %d.

C Стандарт говорит, что если для аргумента формата поставляются недостаточные аргументы, behaviour is undefined.

FWIW, просто указание спецификатора формата не будет волшебно рассматривать аргумент для него. Вам нужно написать что-то вроде

printf("%d", x); 

напечатать значение x.

+0

Спасибо за разъяснение. – user3815163

+0

@ user3815163 Добро пожаловать. :-) –

3

printf() имеет ниже прототип

int printf(const char *,...); 

Что вы передадите это %d к printf() и так как это спецификатор формата для вывода intprintf() ищет параметр, который должен быть распечатан, так как вы не 't пройти любое это неопределенное поведение

+0

Спасибо за разъяснение. К сожалению, stackoverflow не позволяет мне принимать 2 ответа! – user3815163

Смежные вопросы