Может кто-нибудь объяснить мне вывод этого кода? - PullRequest
0 голосов
/ 28 января 2019
char c[] = "hello"; 

printf("%*d", c);

вывод:

бесконечный цикл пробелов

enter image description here

1 Ответ

0 голосов
/ 28 января 2019

Кто-нибудь может объяснить мне вывод этого кода?

бесконечный цикл пробелов

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»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...