В языке Си определение символической константы реализовано как
макроопределение, обрабатываемое препроцессором транслятора с языка Си.
Например
# define DAYS 29 { присваивается значение}
# define WEEK (DAYS /7 ) { присваивается значение
выражения}
В языке Паскаль описание символической константы осуществляется с
помощью служебного слова const. Например,
const имя = значение
Значения в описаниях символических констант могут быть любого из
скалярных типов. Использовать выражения при описании символических
констант в Паскале запрещается.
2.1.4. Указатели
Указатели в языке Си могут указывать на объекты различных типов. В
отличие от языка Си в языке Паскаль ссылки (указатели) используются только
для доступа к динамическим объектам специфицированного типа. Ссылки не
могут использоваться в Паскале для доступа к объектам, описанным явным
образом.
Выделение и освобождение памяти не является частью языка Си, в то
время как они являются частью языка Паскаль. При использовании Паскаля о
выделении памяти для размещения некоторого объекта памяти заботится сам
транслятор с языка Паскаль. При использовании Си ответственность за
выделение памяти для размещения некоторого объекта возлагается на
программиста, который должен явно указать размер выделяемой памяти, а это
служит дополнительным потенциальным источником ошибок.
2.2. Операторы.
Управляющие конструкции в языках Си и Паскаль похожи, но есть
некоторые отличия.
Имеющийся в Си оператор-переключатель switch обеспечивает нахождение
необходимой ветви, выполнение списка операторов , соответствующего этой
ветви, и списка операторов, соответствующих всем следующим за ней ветвям.
Чтобы ограничиться лишь списком операторов, соответствующим найденной
ветви, необходимо в качестве последнего оператора в этом списке использовать
оператор завершения break, который обеспечивает выход из оператора -
переключателя switch. Это является недостатком, поскольку ухудшает
«удобочитаемость», надежность и модифицируемость программ, особенно в тех
случаях, когда для различных альтернатив используются частично -
перекрывающиеся фрагменты. В Паскале оператор варианта case обеспечивает
выбор одной из взаимоисключающих альтернатив, что более удобно по
сравнению по switch в Си. Однако case в Паскале не обеспечивает возможности
выполнения некоторых действий, если среди ветвей отсутствует необходимая
(такая возможность легко обеспечивается оператором-переключателем switch в
Си с помощью служебного слова default ). Это неудобно, поскольку требует
перед выполнение case явным образом выявлять наличие такой ситуации.
В языке Си отсутствует оператор цикла, аналогичный оператору цикла
for в Паскале, в котором он гарантированно завершается, а направление
изменения переменной цикла (увеличение и уменьшение) в нем определено