Подтвердить что ты не робот

Возвращаемое значение функции printf() в C

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

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

Он печатает "1000" один раз и пробел, поэтому мы имеем всего 2 символа.

Он должен вывести "1000 2". Но его вывод "1000 5".

4b9b3361

Ответ 1

Количество выводимых символов равно 5. 1000 - четыре символа. \n - один символ.

printf не возвращает количество выходных данных, как это делает семейство функций scanf для ввода. Он возвращает фактический счетчик символов.

Ответ 2

Внутренний вызов происходит первым, печатает 5 символов (\n, 1, 0, 0, 0) и возвращает 5.

Затем выполняется внешний вызов и печатает 5, который был возвращен внутренним вызовом.

Ответ 3

предположим выражение:

int a=10;
printf("a=%d",printf("b=%d",a));

вывод

b=10 a=4;

b из-за значения, присвоенного b i.e

b=10;

и

b,=,1,0   

считать как четыре и присваивает a i.e:

a=4;

Ответ 4

Вы должны четко заметить, что 1000 - это 4 буквы, и у вас есть \n, который он является символом self

Ответ 5

printf() возвращает фактическое число символов, где здесь мы имеем 4 ( "1000" ) + 1 ( "\n" ), чтобы он выдавал результат 1000, а затем 5, который является количеством символов внутренней функции printf и выглядит как 10005

Ответ 6

Число 1000 состоит из четырех цифр, поэтому для его печати требуется четыре символа. Четыре символа плюс строка - пять символов.

Ответ 7

в printf("%d",printf("\n%d",a)); printf("\n%d",a) будет печатать новую строку char '\n' и целочисленное значение 1000, которое составляет в общей сложности 5 символов. Первый внутренний printf вызывается первым, который печатает новую строку и 1000, а затем возвращаемое значение 5 печатается внешним printf.

Ответ 8

Позволяет сначала проверить вывод внутреннего printf:

/n, 1, 0, 0, 0

Теперь вам нужно рассмотреть 2 вещи:

1) You have to take escape sequences like '\n','\t' etc into account.
2) You have to take 1 escape sequence as 1 character (not 2)

Внешний printf возвращает фактический счетчик символов внутреннего printf, который равен 5. Таким образом, внешний printf возвращает 5.

Ответ 9

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

Ответ 10

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

Ответ 11

введите описание изображения здесь

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