Во многом по историческим причинам символы представляют собой маленькие целые числа, и вся целочисленная арифметика выполняется в типе int
или более широком.Программному обеспечению иногда приходилось работать с символами в виде целочисленных кодов, а иногда и для печати, поэтому C разрабатывался с гибким типом char
.
Везде, где int
или unsigned int
может использоваться вВыражение, включая аргументы функции, вы можете использовать вместо char
.
Если бы мы разрабатывали язык заново, мы могли бы отличить char
-асимвол от char
-кас-целых и требовать явногопреобразования для преобразования между ними.Однако язык такой, какой он есть.