Кто-нибудь может объяснить мне вывод этого кода?
бесконечный цикл пробелов
char c[] = "hello";
printf("%*d", c);
%*d
говорят, что первый аргумент после формата указываетширина, здесь это адрес c , интерпретируемый как огромное число, и добавленный символ по умолчанию для сохранения ширины является пробелом.
обратите внимание, что отсутствует аргумент, обычно дающийзначение для печати
если я использую правильный код, подобный этому:
#include <stdio.h>
int main()
{
printf("%0*d\n", 3, 1);
return 0;
}
результат равен 001, потому что я прошу написать '1' с шириной 3 идобавлен символ «0»