Поскольку C будет способствовать плаваниям, удваивается для функций, которые берут аргументы переменной. Указатели ни на что не продвинуты, таким образом, необходимо использовать %lf
, %lg
или %le
(или %la
в C99) для чтения в удваивается.
scanf
потребности знать, что размер данных, указываемых &d
, заполняется, это правильно, тогда как функции variadic способствуют плаваниям, удваивается (не совсем уверенный, почему), таким образом printf
всегда добирается double
.
Поскольку иначе scanf будет думать, что Вы передаете указатель на плавание, которое является меньшим размером, чем двойное, и он возвратит неправильное значение.
Или Используя плавание или Используя двойное значение в выражении C приведет к значению, которое является двойным так или иначе, таким образом, printf не может сказать различие. Принимая во внимание, что указатель на двойное должен быть явно сообщен к scanf в отличие от указателя на плавание, потому что то, на что указывает указатель, - то, что имеет значение.