Мы начнем описание языка Си-бемоль(C) с общего описания конструкций, допустимых в этом языке (детали синтаксиса можно найти в прилагаемой грамматике, см. следующую страницу):
Наследование допускается только от классов (не от интерфейсов).
Тело метода может содержать операторы-выражения (например, вызов метода), if, while, for и return, а также операторы блока и описания переменных.
Также реализован оператор new, как для массивов, так и для простых объектов. Хотя описание собственных конструкторов с параметрами невозможно, вызов конструкторов стандартных классов с передачей им списка параметров допустим.
Следует отметить, что оператор присваивания, в отличие от C#, возвращает значение типа void, то есть фактически может быть использован только как оператор-выражение.
Особым образом следует сказать про вызов перегруженных методов в C: при вызове методов из стандартных классов используется стандартный алгоритм разрешения. При вызове методов из определенных в программе классов используется упрощенный алгоритм: выбор подходящего метода осуществляется только по числу параметров.