Как уже упоминалось, char
будет повышен до int
, когда вы назначите элементы массива int[]
со значениями char
. Вам придется использовать явное приведение при чтении из этого массива.
Т.е., следующие работы
int a[10];
char c='X';
a[0] = c;
c = (char) a[0];
ОДНАКО
Поскольку вам необходимо отслеживать, какие элементы содержат целые, а какие содержат символы - это не является привлекательным решением.
Другой вариант - просто иметь массив char
и хранить цифры 0..9 в виде символов. Т.е., '0', '1', .. '9'.
(Третий вариант - просто иметь другую переменную, хранящую индекс для элемента 'X' - но это сильно отличается от того, что вы предлагаете)