Например, следующий код:Печатает отрицательные числа как символы, четко определенные в C?
#include <stdio.h>
#include <limits.h>
int main(void)
{
char a;
signed char b;
for(a = CHAR_MIN, b = CHAR_MIN; a < CHAR_MAX ; a++, b++)
printf("%c %c\n", a, b);
}
выходы:
! !
" "
# #
$ $
% %
& &
' '
((
……
Когда a
и b
отрицательные персонажи по-прежнему печатаются на экране. Интересно, хорошо ли это поведение?
Если да, то определяется ли это стандартом или конкретной реализацией? И какой смысл определять такое поведение?
% c предназначен для печати символов. Попробуйте% d. – bruceg
@bruceg Я знаю, и я специально использовал «% c», потому что я хочу знать, как работает «% c», когда передаются отрицательные значения. –
При печати в формате% c бит-бит преобразуется в символ. Попробуйте простой цикл ** для (int c = -127; c <128; C++) printf («% d% c \ n», c, c); ** и изучите вывод вместе с таблицей ASCII. –