int main(){
// Comment the next line, Garbage value is printed. However, this shows an integer value.
int x=32;
printf("%d");
return 0;
}
Любые причины такого поведения, или это случайные ???Поведение «printf («% d »);
int main(){
// Comment the next line, Garbage value is printed. However, this shows an integer value.
int x=32;
printf("%d");
return 0;
}
Любые причины такого поведения, или это случайные ???Поведение «printf («% d »);
Вы сказали printf()
как печати что-то (формат спецификатора %d
), но вы не сказали printf()
, что для печати.
Чтобы разработать, вы забыли указать требуемый аргумент для спецификатора формата поставки %d
.
C
Стандарт говорит, что если для аргумента формата поставляются недостаточные аргументы, behaviour is undefined.
FWIW, просто указание спецификатора формата не будет волшебно рассматривать аргумент для него. Вам нужно написать что-то вроде
printf("%d", x);
напечатать значение x
.
printf()
имеет ниже прототип
int printf(const char *,...);
Что вы передадите это %d
к printf()
и так как это спецификатор формата для вывода int
printf()
ищет параметр, который должен быть распечатан, так как вы не 't пройти любое это неопределенное поведение
Спасибо за разъяснение. К сожалению, stackoverflow не позволяет мне принимать 2 ответа! – user3815163
Спасибо за разъяснение. – user3815163
@ user3815163 Добро пожаловать. :-) –