У меня есть вопрос относительно функции putchar в C. Пока я учился, я наткнулся на следующее утверждение: printf("%c\n",putchar('A'+1)+2);
Когда я компилирую и выполняю программу, результатом является BD. Я понял, что когда мы наберем putchar('A' + 1)
, результат будет B, но как мы получили D? Разве эта функция не возвращает один символ за раз? Заранее спасибоconfused about putchar result in C
-3
A
ответ
1
putchar
делает две вещи:
- Пишущие символ «B», чтобы
stdout
- Возвращение символа «B» в результате вызова функции.
Поскольку «B» возвращается putchar
, то к нему добавляется 2, что делает его «D». Это передается как параметр printf
, который затем записывает «D \ n» в stdout
.
'putchar' возвращает символ, написанный ('B'), а затем вы добавляете 2 к этому ('D') и передаете его как аргумент' printf'. –
[Эта ссылка 'putchar'] (http://en.cppreference.com/w/c/io/putchar) должна быть очень полезной. –
Что вы ожидали? Что вы не поняли в man-странице? Что вы видите в отладчике? «Разве эта функция не возвращает один символ за раз?» - сколько символов '' D''? – Olaf