Возвращаемое значение функции printf () в C - PullRequest
29 голосов
/ 14 августа 2011

Функция printf() возвращает количество напечатанных символов.Но в приведенном ниже коде почему он печатает 5.

int a=1000;
printf("%d",printf("\n%d",a));

Он печатает «1000» один раз и пробел, так что в целом у нас есть 2 символа.

Должно появиться «1000 2».Но вывод его "1000 5".

Ответы [ 13 ]

1 голос
/ 12 августа 2017

enter image description here

Как вы можете видеть на изображении, сначала последний printf показывает, что он должен показать, т.е. 3223433 1233. Теперь последний printf возвращает количество символов в строке / int, которые он отображал. Затем второй последний printf отображает 12, который является длиной всего, что отображается последним printf, т.е. 3223433 1233. Третий последний printf теперь отображает 2, который является длиной 12. Поскольку длина 12 равна 2, она отображается следующим а затем, поскольку длина 2 равна 1, отображается 1 и, наконец, снова 1, поскольку это длина 1.

1 голос
/ 22 августа 2016

printf () возвращает общее число.персонажа, напечатанного на консоли, вы проходите 1000;поэтому первая внутренняя функция printf () будет работать и печатать 1000, а здесь нет.из символов 4. Один это \ n.

Так что всего нет.символа становится 5, поэтому печатается 1000 5.

1 голос
/ 14 августа 2012

Printf возвращает количество символов, успешно напечатанных функцией.

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