В языке C также существуют перечислимый тип – enum , который является подмножеством целого типа, и пустой тип – void, который имеет специальное назначение. Он используется для объявления функций, которые не возвращают никакого значения, а также для объявления указателей на значение типа void. Такие указатели могут быть преобразованы к указателям на любой другой тип. В языке С можно объявлять структуры и так называемые объединения. В языке C нет специальных типов для массивов, строк (которые представляются массивом символов), и для логических значений. Логические значения представляются данными целого типа, при этом значение 0 соответствует логическому значению ложь, а все остальные целые значения соответствуют логическому значению истина. Этим свойством языка C можно пользоваться, например, следующим образом: значение некоторой переменной, равное 0, говорит об отсутствии некоторого признака у объекта, а остальные значения говорят о его наличии, и при этом несут какую-либо дополнительную информацию. В языке С контроль типов не так силён, как в Паскале. Вы можете выполнять любые разумные присвоения между переменными разных типов. Кроме того, при выполнении большинства операций производятся преобразования по умолчанию для приведения операндов к одному и тому же типу:
В языке С нет операций преобразованием между символом и кодом символа, т.к. в оперативной памяти символ и так храниться в виде его кода. Поэтому можно к переменной, хранящей символ, прибавить 1 и получить следующий символ. Контроль типов языка С можно (но не нужно!) обойти с помощью операции приведения типа. |