Они неявно конвертируемые ...
int x = 65;
char c = x; // 'A'
putchar(x);
printf("%c", x);
char asciiz[] = { 65, 32, 66, 32, 67, 0 };
Вы можете сделать это явно, например, с помощью (char)65
, особенно полезно в C ++, где перегрузка и шаблоны делают написание кода, который ведет себя по-разному, в зависимости от общего типа.
Если вы действительно хотите получить (возможно, несколько) символьное представление числа, то вы можете использовать printf ("% d", x), чтобы вывести его на стандартный вывод, или:
char buffer[16]; // biggest int is 4 billion so ~10 chars, round up for safety
sprintf(buffer, "%d", x);
// say x was 128, buffer now contains [0] = '1', [1] = '2', [2] = '8', [3] = NUL.